就是判断两个数是不是互素。。。
这个是我的代码
#include
int gcd(int a, int b)
{
int max = a > b ? a : b;
int min = a < b ? a : b;
a = max;
b = min;
int r = a % b;
if(0 == r)
return b;
else
return gcd(b, r);
}
int main(){
int s, m;
while( scanf( "%d%d", &s, &m ) != EOF ){
getchar();
printf( "%10d%10d", s, m );
if( gcd( s, m ) == 1 ){
printf( " %s\n\n", "Good Choice" );
}else{
printf( " %s\n\n", "Bad Choice" );
}
}
return 0;
}
好像是数论还是密码学的知识,不记得了。
#include
int main()
{
long m,n,i,f1,f2;
while(scanf("%ld%ld",&m,&n)!=EOF)
{
printf("%10d%10d",m,n);
f1=0;
for(i=1;i
f2=(f1+m)%n;
f1=f2;
if(f1==0)
{
printf(" Bad Choice\n\n");
break;
}
}
if(i>=n)
printf(" Good Choice\n\n");
}
return 0;
}
#include
int main()
{
int a,b,f(int,int);
while(scanf("%d%d",&a,&b)==2)
printf("%10d%10d %s Choice\n\n",a,b,((f(a,b)==1)? "Good":"Bad"));
return 0;
}
int f(int x,int y){
return ((y==0)? x:f(y,x%y));
}
自己刚刚写的 过了 我的就是算公约数。
你的看了一下,有几个问题:1,加法会越界 int+int 很可能就超了,我也刚玩hdoj,被1002彻底阴过……,这个会造成wa。 2,超时,自己算算循环次数吧,没wa也tle。 还是得用公约数的方法。