费马大定理:当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的整数解的个数。
费马大定理:当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的整数解的个数。
输入最多包含10组数据。每组数据包含两个整数x, y(1<=x,y<=108)。
对于每组数据,输出解的个数。
1 10
1 20
123 456789
Case 1: 0
Case 2: 2
Case 3: 16
#include <cstdio> #include <cstring> using namespace std; int main() { int x,y,a,b,c,count,k=0; while(scanf("%d%d",&x,&y)!=EOF) { count=0; for(a=x;a<=1000&&a<=y;a++) for(b=x;b<=1000&&b<=y;b++) { int s=a*a*a+b*b*b; if(s%10!=3) continue; c=s/10; if(c>=x&&c<=y) count++; } printf("Case %d: %d\n", ++k, count); } return 0; }别人0ms的代码;
#include<stdio.h> int main() { //freopen("a.txt","r",stdin); long long x,y,i,j,t; int a=0; while(scanf("%lld%lld",&x,&y)!=EOF) { t=x*x*x; a++; y=y*10+3; int cnt=0; for(i=x,j=1;t+i*i*i<=y;i++,j++); long long ii=i,jj=j; //printf("%lld %lld\n",i,j); for(i=x;i<=ii;i++) { int k=(13-i*i*i%10)%10; if(k!=0 && k!=1 && k!=4 && k!=5 && k!=6 && k!=9) k=10-k; for(j=x-x%10+k;j<ii;j+=10) { if(j<x) j+=10; if(j*j*j+i*i*i<=y) cnt++; //printf("%lld %lld\n",i,j); } } printf("Case %d: %d\n",a,cnt); } return 0; }
费马大定理:当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的整数解的个数。
输入最多包含10组数据。每组数据包含两个整数x, y(1<=x,y<=108)。
对于每组数据,输出解的个数。
1 10
1 20
123 456789
Case 1: 0
Case 2: 2
Case 3: 16
原文地址:http://blog.csdn.net/whjkm/article/details/39996557