對於c中的學生課程, 我需要找到兩個整數的主要最大公約數(gcd)。 如果沒有答案,輸出應該是1. 只能使用if語句,scanf,循環(無外部函數)。輸入和輸出查找兩個數字之間的素數gcd
例子:
(20,20)--->5
(21,20)--->1
(22,20)--->2
(29,29)--->29
是否有人可以幫助我? 這是我到目前爲止有:
#include <stdio.h>
int main()
{
int num1, num2, i, hcf;
printf("Enter two integers: ");
scanf("%d %d", &num1, &num2);
for(i=1; i<=num1 || i<=num2; ++i)
{
if(num1%i==0 && num2%i==0) /* Checking whether i is a factor of both number */
hcf=i;
}
printf("gcd of %d and %d is %d", num1, num2, hcf);
return 0;
}
有關於如何發現我已經找到了黃金GCD的GCD,但沒有很多的例子。
你可以明顯地測試所有類似於篩選算法的素數。雖然這不會很有效。另一種選擇(有點類似)是找到一個數字的因素,並檢查是否分開另一個(抓住它們的最大值)。 –