1103 缘分数 (20 分) 注意边界,1
#include <stdio.h>
#include <math.h>
long long isPing(long long n);
long long yuan(long long n);
int main ()
{
long long m,n,flag=0;
scanf ("%lld %lld",&m,&n);
for (;m<=n;m++)
{
long long a=m*m*m-(m-1)*(m-1)*(m-1);
if (isPing(a)==0||a==1)
continue;
else
{
long long b=isPing(a);
if (yuan(b)==0)
continue;
else
{
flag=1;
long long k=yuan(b);
printf ("%lld %lld\n",m,k);
}
}
}
if (flag==0)
printf ("No Solution");
return 0;
}
long long isPing(long long n)
{
long long i=(long long)sqrt(1.0*n);
if (i*i==n)
return i;
else
return 0;
}
long long yuan(long long n)
{
long long i=(long long)sqrt(1.0*n);
for (;i>=1;i--)
{
if (n==i*i+(i-1)*(i-1))
return i;
}
return 0;
}
|