project euler problem 86

//   求解关于x^2+y^2=z^2 其中x,y,z均为整数的问题

project euler problem 86
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int main()
{
    __int64 i,j,k,m;
    __int64 num=0;
    for(m=1;; m++)
    {
        for(i=1; i<=2*m; i++)
        {
            __int64 sum=i*(2*m+i);
            __int64 an=sqrt(sum);
            if(an*an==sum&&an<=2*m)
            {
                __int64 l=(an-m)>1?(an-m):1;
                __int64 r=(an/2)<m?(an/2):m;
                num+=(r-l+1);
            }
        }
       // printf("%I64d  %I64d\n",m,num);
        if(num>=1000000)break;
    }
    printf("%I64d\n",m);
    return 0;
}
View Code

project euler problem 86

上一篇:std::list.pop_back() 弹空了列表导致的崩溃


下一篇:新功能发布!Markdown写博客!