搞笑版费马大定理
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 194 Solved: 96
[ 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#include<stdio.h>
int main(){
int x,y;
int m,n;
int Case=1,count;
while(scanf("%d %d",&x,&y)!=EOF){
int i,j;
count=0;
for(i=x;i*i*i<=y*10+3;i++){//i就是题中的a
for(j=i;j*j*j<=y*10+3;j++){//j也可以从x开始,如果从这开始的会时间效率会低一点。
m=i*i*i;
n=j*j*j;
if((m+n)%10==3&&(m+n-3)/10>=x&&(m+n-3)/10<=y)//判断c是否满足条件
count++;
}
}
printf("Case %d: %d\n",Case++,count*2);//因为可以重复,所以要乘以2.也可以在上面j从x开始
}
return 0;
}
#include<stdio.h>
int main(){
int x,y;
int m,n;
int Case=1,count;
while(scanf("%d %d",&x,&y)!=EOF){
int i,j;
count=0;
for(i=x;i*i*i<=y*10+3;i++){//i就是题中的a
for(j=i;j*j*j<=y*10+3;j++){//j也可以从x开始,如果从这开始的会时间效率会低一点。
m=i*i*i;
n=j*j*j;
if((m+n)%10==3&&(m+n-3)/10>=x&&(m+n-3)/10<=y)//判断c是否满足条件
count++;
}
}
printf("Case %d: %d\n",Case++,count*2);//因为可以重复,所以要乘以2.也可以在上面j从x开始
}
return 0;
}
Case 1: 0Case 2: 2Case 3: 16
HINT
Source
题目很简单,首先我设a为i,b为j。a和b都不会超过y,自然也不会超过y*10+3;所以思路就比较简单了,找出符合条件的a和b。