#include <stdio.h> typedef unsigned long int DW; inline DW gcd(DW m,DW n){DW t; while(m!=0) t=m,m=n%m,n=t;return n;} DW Test(DW n){ DW t,s,ii,cnt=1,sum=0,c=1; DW a,b; for(b=1;b*b<=n/2;b++) for(a=b+1;t=a*a+b*b,t<=n;a+=2){ if(gcd(a,b)==1){ s=n/t; // for(ii=1;ii<=s;ii++) // printf("%5u.%-5u/t%u,%u,%u/n",c++,cnt,ii*(a*a-b*b),2*ii*a*b,ii*t); // cnt++; sum+=s*(s+1)*a*(a+b); } } return sum; } int main(int c ,char **v) { if (c==2) { printf("b: total of triples less than %s :/t%lu/n",v[1],Test(atoi(v[1]))); } return 0; }