好了,所以相對黃金是指兩個數字沒有共同的因素大於1,它也可以被看作是有gcd上述= 1相對主要檢查?
兩個號碼所以沿着這些線路,這是我寫找到兩個代碼相對素數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= 0
...其實我一直得到相同的e與我初始化for循環
我做錯了什麼?如果兩個數字相對較好,還有其他方法嗎?
編輯:
好按從MiniTech移動這裏的建議是修改後的代碼:
for(e = 2,flag=0; !flag; e++){
if(gcd(e, z) == 1){
flag = 1;
}
}
現在當我把我的Z = 60,我的e是走出來爲E = 60這又是錯誤的。正確的答案應該是E = 7
你的'gcd'函數不健壯,如果用'i = 0'調用,它除以零。 – starblue