#include
按需網(wǎng)站建設(shè)可以根據(jù)自己的需求進行定制,網(wǎng)站制作、做網(wǎng)站構(gòu)思過程中功能建設(shè)理應(yīng)排到主要部位公司網(wǎng)站制作、做網(wǎng)站的運用實際效果公司網(wǎng)站制作網(wǎng)站建立與制做的實際意義
"stdio.h"
int
main()
{
int
d1,d2,r;
printf("輸入兩個正整數(shù):");
scanf("%d
%d",d1,d2);
do
{
r=d1%d2;
d1=d2;d2=r;
}while(d2!=0);
printf("最大公約數(shù)是:%d",d1);
}
//遞歸法
#include
"stdio.h"
int
fun(int
d1,int
d2)
{
if(d2!=0)
return
fun(d2,d1%d2);
else
return
d1;
}
int
main()
{
int
d1,d2;
printf("輸入兩個正整數(shù):");
scanf("%d
%d",d1,d2);
printf("最大公約數(shù)是:%d",fun(d1,d2));
}
#include stdio.h
int main()
{
int a,b,c,m,t;
printf("請輸入兩個數(shù):\n");
scanf("%d%d",a,b);
if(ab)
{
t=a;
a=b;
b=t;
}
m=a*b;
c=a%b;
while(c!=0)
{
a=b;
b=c;
c=a%b;
}
printf("最大公約數(shù)是:\n%d\n",b);
printf("最小公倍數(shù)是:\n%d\n",m/b);
}
擴展資料
算法思想
利用格式輸入語句將輸入的兩個數(shù)分別賦給 a 和 b,然后判斷 a 和 b 的關(guān)系,如果 a 小于 b,則利用中間變量 t 將其互換。
再利用輾轉(zhuǎn)相除法求出最大公約數(shù),進而求出最小公倍數(shù)。最后用格式輸出語句將其輸出。
#includestdio.h是在程序編譯之前要處理的內(nèi)容,稱為編譯預(yù)處理命令。編譯預(yù)處理命令還有很多,它們都以“#”開頭,并且不用分號結(jié)尾,所以是c語言的程序語句。
1、新建一個C語言源程序,這里使用Visual C++6.0的軟件:
2、從鍵盤中輸入兩個正整數(shù)a和b。取兩個數(shù)a,b中的較小值存放到變量n中。從兩個數(shù)a和b中的較小數(shù)開始逐個減小1,尋找能整除a和b的整數(shù),第一個找到的整數(shù)即整數(shù)a和b的最大公約數(shù),最后將找到的結(jié)果輸出即可完成程序的編寫:
3、對源程序編譯運行,測試輸入4、6,得到最大公約數(shù)2說明程序是正確的,以上就是用c語言求最大公約數(shù)的過程:
//注意:測試時輸入的兩個數(shù)用逗號分隔,如: 12,18
#includestdio.h
int main()
{
int a,b,h;
int max(int m,int n);
printf("輸入兩個數(shù):\n");
scanf("%d,%d",a,b);
h=max(a,b);
printf("最大公約數(shù)為:%d\n",h);
getchar();
}
int max(int m,int n)
{
int temp;
temp=m%n;
while(temp)
{
m=n;
n=temp;
temp=m%n;
}
return(n);
}
c語言最大公約數(shù)函數(shù),一般是寫一個自定義的函數(shù)。
int gcd(int a,int b)
{return b?gcd(b,a%b):a;
}
#includestdio.h
int main()
{
int zdgys(int x, int y); //求最大公約數(shù)
int zxgbs(int x, int y); //求最小公倍數(shù)
int a,b,max,min;
scanf("%d %d",a,b);
max = zdgys(a, b); //求最大公約數(shù)
min = zxgbs(a, b); //求最小公倍數(shù)
printf("最大公約數(shù)為%d,最小公倍數(shù)為%d",max,min);
return 0;
}
int zdgys(int x, int y)
{
int i,r,t=xy ? x : y;
for (i=1;i=t;i++)
{
if (x%i == 0 y%i == 0)
r=i;
}
return r;
}
int zxgbs(int x, int y)
{
int i,t=xy ? x : y;
for (i = t;;)
{
if (i%x == 0 i%y == 0)
break;
else
i++;
}
return i;
}