一、輸入兩個(gè)正整數(shù),求這兩個(gè)正整數(shù)的最大公約數(shù)和最小公倍數(shù)。
? ? ? ? 最大公約數(shù):1、這個(gè)數(shù)同時(shí)能被兩個(gè)整數(shù)整除,余數(shù)為0 就是公約數(shù)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2、只要在公約數(shù)中取最大值即可
? ? ? ? 最小公倍數(shù):1、這個(gè)數(shù)能同時(shí)整除兩個(gè)正整數(shù)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2、這個(gè)數(shù)一定大于等于較大的正整數(shù)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3、取第一個(gè)得到的正整數(shù)即可
代碼:
int main(int argc, const char *argv[])
{
int a = 0;
int b = 0;
int value1 = 0;
int i = 0;
printf("輸入兩個(gè)正整數(shù):");
scanf("%d,%d",&a,&b);
int max = 0;
if(a>b)
max = a;
else
max = b;
#if 0
for(i=1;i<=min;i++){
if(a%i==0 && b%i==0){
value1 = i;
}
}
#endif
#if 1
i = 1;
while(i<=a && i<=b){
if(a%i==0 && b%i==0){
value1 = i;
}
i++;
}
#endif
printf("最大公約數(shù)=%d\n",value1);
for(i=max;;i++){
if(i%a==0 && i%b==0)
break;
}
printf("最大公倍數(shù)=%d\n",i);
return 0;
}
第一部分:定義變量并初始化和輸入正整數(shù)
int a = 0;
int b = 0;
int value1 = 0;
int i = 0;
printf("輸入兩個(gè)正整數(shù):");
scanf("%d,%d",&a,&b);
int max = 0;
第二部分:判斷兩個(gè)輸入端的兩個(gè)值中叫大的值
if(a>b)
max = a;
else
max = b;
第三部分:最大公約數(shù)
i = 1;
while(i<=a && i<=b){
if(a%i==0 && b%i==0){
value1 = i;
}
i++;
}
printf("最大公約數(shù)=%d\n",value1);
?i 從1開始(公約數(shù)大于等于1),當(dāng)取到能被 a 和 b 同時(shí)整除的,保存在 value1 中,用循環(huán)能不斷刷新 value1 的值,使 value1 能取到最大的公約數(shù),直到 i 大于其中一個(gè)正整數(shù)退出循環(huán)
第四部分:最小公倍數(shù)
for(i=max;;i++){
if(i%a==0 && i%b==0)
break;
}
printf("最大公倍數(shù)=%d\n",i);
i 從兩個(gè)正整數(shù)中較大的值開始取,由于最小公倍數(shù)是多少不知道,所以 for 語句中,跳出 for 語句的條件不寫,i 不斷增加,當(dāng)遇到第一個(gè)能整除 a 并且能整除 b 的值時(shí)跳出循環(huán),此時(shí) i 記錄的就是最小公倍數(shù)
結(jié)果演示:文章來源:http://www.zghlxwxcb.cn/news/detail-742254.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-742254.html
到了這里,關(guān)于輸入兩個(gè)正整數(shù),求這兩個(gè)正整數(shù)的最大公約數(shù)和最小公倍數(shù)。的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!