1670: 和费马开个玩笑
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 50 Solved: 37
[ Submit][ Status][ Web Board]
Description
费马大定理:当n>2时,不定方程an+bn=cn没有整数解。比如a3+b3=c3没有正整数解。我们来给他开个玩笑:把方程改成a3+b3=c3,这样就有解了,比如a=4, b=9, c=79时43+93=793。
输入两个整数x, y, 求满足x<=a,b,c<=y的整数解的个数。
Input
输入最多包含10组数据。每组数据包含两个整数x, y(1<=x,y<=108)。
Output
对于每组数据,输出解的个数。
Sample Input
1 101 20123 456789
Sample Output
Case 1: 0Case 2: 2Case 3: 16
HINT
思路:直接硬搜,但是 要想到,爆搜是要超时,所以这里有一个跳出循环的条件,就是a,b不能超过1000,因为1000*1000*1000为10的9次,已经大于c的范围。
代码:
#include<cstdio>
using namespace std;
int main()
{
int n,m;
int g=0;
while(~scanf("%d%d",&n,&m))
{
++g;
int sum=0;
long long int sum1;
for(int i=n;i<=m&&i<=1000;i++)//跳出循环条件1000
{
for(int j=n;j<=m&&j<=1000;j++)
{
sum1=i*i*i+j*j*j;
if(sum1%10==3&&(sum1/10)>=n&&(sum1/10)<=m)
sum++;
}
}
printf("Case %d: %d\n",g,sum);
}
return 0;
}