1670: 和费马开个玩笑
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 43 Solved: 30
[ 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 10
1 20
123 456789
Sample Output
Case 1: 0
Case 2: 2
Case 3: 16
【解析】
此题跟我开了个大大的玩笑,一开始第一时间想到的就是暴搜,但是一想肯定会超时...没想到还是暴搜..不过这个暴搜是有范围的哦,首先我们要注意到c的取值范围是小于等于10的8次方的,也就是说c乘10一定是小于等于10的9次方的,那么我们的a和b最大的上限肯定是10的三次方也就是1000所以我们就可以开始敲了...数据范围也是一个突破点..
#include<iostream>
#include<string>
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
long long n,m,k;
int count,p=0,i,j;
while(~scanf("%lld%lld",&n,&m))
{
count=0;
p++;
for(i=n;i<=1000&&i<=m;i++)
{
for(j=n;j<=1000&&j<=m;j++)
{
k=i*i*i+j*j*j;
if(k%10!=3)
continue;
else
k=k/10;
if(k>=n&&k<=m)
count++;
}
}
printf("Case %d: %d\n",p,count);
}
return 0;
}