微剋多資訊

 找回密碼
 註冊

Login

Login

搜索
回覆 0則 瀏覽 804篇

最大公因數和最小公倍數

該用戶從未簽到

發表於 2009-12-19 16:26 | 顯示全部樓層 |閱讀模式
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int 最大公因數(int 第一數,int 第二數);

int 最小公倍數(int 第一數,int 第二數);

int main(){
int 第一數,第二數;
printf("請輸入一數\n");
scanf("%d",&第一數);
scanf("%d",&第二數);
printf("第一數為%d\n",第一數);
printf("第二數為%d\n",第二數);
printf("最大公因數=%d\n",最大公因數(
第一數,第二數));
printf("最小公倍數=%d\n",最小公倍數(
第一數,第二數));

printf("by 亂數\n");
第一數=rand();
第二數=rand();
printf("第一數為%d\n",第一數);
printf("第二數為%d\n",第二數);
printf("最大公因數=%d\n",最大公因數(
第一數,第二數));
printf("最小公倍數=%d\n",最小公倍數(
第一數,第二數));

printf("by 隨機亂數\n");
srand(time(NULL));
第一數=rand();
第二數=rand();
printf("第一數為%d\n",第一數);
printf("第二數為%d\n",第二數);
printf("最大公因數=%d\n",最大公因數(
第一數,第二數));
printf("最小公倍數=%d\n",最小公倍數(
第一數,第二數));

system ("pause");
return 0;
}

int 最大公因數(int 第一數,int 第二數){
//輾轉相除法
while((第一數*第二數)!=0){
第一數=第一數%第二數;
第二數=第二數%第一數;
}
if(第一數!=0){
return 第一數;
}else{
return 第二數;
}
}

int 最小公倍數(int 第一數,int 第二數){
int 相乘=第一數*第二數;
while((第一數*第二數)!=0){
第一數=第一數%第二數;
第二數=第二數%第一數;
}
if(第一數!=0){
return 相乘*第一數;
}else{
return 相乘*第二數;
}
}
您需要登入後才可以回帖 登入 | 註冊

本版積分規則

小黑屋|Archiver|微剋多資訊(MicroDuo)

GMT+8, 2016-12-9 00:04

Discuz! X

© 2009-2016 Microduo

快速回覆 返回頂部 返回列表