互いに素であるということは、2 つの数が 1 より大きい公約数を持たないことを意味します。また、gcd = 1 を持つ 2 つの数と見なすこともできます。
したがって、これらの行に沿って、これは2つの互いに素な数 e,z を見つけるために私が書いたコードです:
for(e = 0,flag=0; (flag==1); e++){
if( gcd( e, z ) == 1){ // z in this example is 60
flag = 1;
}
}
printf("e = %d\n",e);
gcd 関数は次のように定義されます。
int gcd(int i, int x){
if(x % i == 0) return( i );
return( gcd( x % i, x ) );
}
を設定するz = 60
と、得られる e はe= 0
... 実際には、 for ループを初期化するのと同じeを取得し続けます
私は何を間違っていますか?2 つの数が互いに素であるかどうかを調べる方法はありますか?
編集:
ミニテックからの提案によると、変更されたコードは次のとおりです。
for(e = 2,flag=0; !flag; e++){
if( gcd( e, z ) == 1){
flag = 1;
}
}
z=60 を設定すると、 e が e = 60 になり、これも間違っています。正解は e = 7 です