導航:首頁 > 編程語言 > 編程求最大公約數

編程求最大公約數

發布時間:2022-10-08 20:59:24

① c語言編程_窮舉法求兩個數的最大公約數

求最大公約數演算法
(1)輾轉相除法
兩整數a和b:
① a%b得余數c
② 若c=0,則b即為兩數的最大公約數,結束
③ 若c≠0,則a=b,b=c,再回去執行①
(2)相減法
兩整數a和b:
① 若a>b,則a=a-b
② 若a<b,則b=b-a
③ 若a=b,則a(或b)即為兩數的最大公約數,結束
④ 若a≠b,則再回去執行①
(3)窮舉法:
① i= a b中的小數
② 若a,b能同時被i整除,則i即為最大公約數,結束
③ i--,再回去執行②
相關代碼:
#include <stdio.h>
int xc_gcd(int a,int b)
{
int c;
c=a%b;
while( c!=0 )
{
a=b;
b=c;
c=a%b;
}
return b;
}
int xj_gcd(int a,int b)
{
while( a!=b )
{
if ( a>b )
a-=b;
else
b-=a;
}
return b;
}
int qj_gcd(int a,int b)
{
int i;
i=(a>b)?a:b;
while( a%i!=0 && b%i!=0 )
i--;
return i;
}
void main()
{
//int a=36,b=27;
//int a=27,b=36;
int a=100,b=201;
printf("a=%d b=%d\n", a, b );
printf("輾轉相除法求最大公約數=%d\n", xc_gcd(a,b) );
printf("相減法求最大公約數=%d\n", xc_gcd(a,b) );
printf("窮舉法求最大公約數=%d\n", xc_gcd(a,b) );
}

② c語言編程,求兩個數的最大公約數和最小公倍數

這樣寫:
#include
void
main()
{
int
m,n,i,r,temp;
printf("請輸入第一個數的值:
");
scanf("%d",&m);
printf("請輸入第二個數的值:
");
scanf("%d",&n);
if(n>m)
{
temp=m;
m=n;
n=temp;
}
i=n;
while(i%m!=0)
{
i=i+n;
}
printf("最小公倍數是:%d
\n",i);
r=m%n;
while(r!=0)
{
m=n;
n=r;
r=m%n;
}
printf("最大公約數是:%d
\n",n);
}
圖:

③ c語言編程:輸入兩個正整數,求最大公約數和最小公倍數

#include

voidmain(){

inta,b,n1,n2,t;

while(true)

{

printf("任意輸入兩個正整數: ");

scanf("%d%d",&n1,&n2);

if(n1

{

t=n1;

n1=n2;

n2=t;

}

a=n1;

b=n2;

while(b!=0){/*利用輾除法,直到b為0為止*/

t=a%b;

a=b;

b=t;

}

printf("最大公約數為:%d ",a);

printf("最小公倍數為:%d ",n1*n2/a);

}}

(3)編程求最大公約數擴展閱讀

C語言求最大公約數輾轉相除法

#include<stdio.h>

intgcd(intm,intn);//將輾轉相除的過程封裝為函數,使主函數結構清晰。

intmain(void)

{

inta,b;

while(~scanf("%d%d",&a,&b)){//多組數據輸入時的方式之一與while(scanf("%d%d",&a,&b)!=EOF)用途相同

printf("%d ",gcd(a,b));

return0;

}

intgcd(intm,intn)

{

returnn?gcd(n,m%n):m;//此函數將輾轉相除的過程以遞歸的形式呈現,簡化程序屬於常規套路。

}

④ C語言程序設計如何求最大公約數

具體操作步驟如下:

一、新建一個C語言源程序,使用Visual C++6.0的軟體。

⑤ C語言編程:輸入兩個正整數m和n,求它們的最大公約數。

#include <stdio.h>

int gcd(int a,int b)

{

if(a%b)

return gcd(b,a%b);

return b;

}

int main()

{

int m,n;

scanf("%d%d",&m,&n);

printf("%d ",gcd(m,n));

return 0;

}

⑥ c語言編程求輸入兩個數的最大公約數和最小公倍數,怎麼做

輸入兩個正整數m和n,求其最大公約數和最小公倍數.用輾轉相除法求最大公約數 演算法描述:m對n求余為a,若a不等於0 則 m 0)
{
m_cup = m;

#include<stdio.h>

voidmain()

{

intm,n,m1,n1,t;

printf("請輸入兩個數(用空格隔開):");

scanf("%d%d",&m,&n);

if(n>m)

{

t=m;

m=n;

n=t;

}

m1=m;

n1=n;

while(n!=0)

{

t=m%n;

m=n;

n=t;

}

printf("%d和%d的最大公約數是:%d ",m1,n1,m);

printf("最小公倍數是:%d ",m1*n1/m);

}

⑦ c語言編程:輸入兩個正整數m和n,求其最大公約數和最小公倍數。

輸入兩個正整數m和n,求其最大公約數和最小公倍數。

解:程序:

#include <stdio.h>

int main()

{

int num1, num2, t,p;

printf("請輸入兩個正整數:");

scanf("%d,%d", &num1, &num2);//7,8

p = num1*num2;

while (t = num1%num2)//7 1 0,循環結束

{

num1 = num2; //8 7

num2 = t; //7,循環繼續 1

}

p = p / num2;

printf("它們的最大公約數:%d ", num2);

printf("它們的最小公倍數:%d ", p);

return 0;

}

結果:

請輸入兩個正整數:3,6

它們的最大公約數:3

它們的最小公倍數:6

(7)編程求最大公約數擴展閱讀:

C語言編寫注意事項:

1、每個程序中一定包含main()函數,盡管C語言中對函數命名沒有限制。

2、printf函數永遠不會自動換行,只能用 來實現,回車鍵進行的換行在編譯中會出現錯誤信息。

3、在vs2008中編譯,測試需要加 system("pause");來暫停dos自動退出導致的printf無法顯示。

4、每行只書寫一條語句,在運算符兩邊加上一個空格,便於閱讀。

⑧ c語言求最大公約數

1、新建一個C語言源程序,這里使用Visual C++6.0的軟體:

⑨ c語言求兩個數的最大公約數是多少

c語言求兩個數的最大公約數的步驟如下:

1、首先,新建一個C語言源程序,在這里使用的是Visual C++6.0的軟體。

以上就是c語言求兩個數的最大公約數的步驟了。

閱讀全文

與編程求最大公約數相關的資料

熱點內容
單片機的功能模塊 瀏覽:771
安卓手機如何錄制視頻長時間 瀏覽:285
安全問題app哪個好 瀏覽:445
壓縮水會變冰嗎 瀏覽:526
小說配音app哪個靠譜 瀏覽:820
編譯iso 瀏覽:944
照片生成pdf格式 瀏覽:194
病歷轉pdf 瀏覽:835
雲伺服器配硬體 瀏覽:978
伺服器10k什麼意思 瀏覽:21
pdfeditor漢化 瀏覽:884
新科學pdf 瀏覽:746
現在還有c語言編譯嗎 瀏覽:675
哪裡買到單片機 瀏覽:480
linux文件打開數量 瀏覽:510
編譯原理中什麼是l屬性文法 瀏覽:372
硬碟加密時出現的問題 瀏覽:61
如何退域命令 瀏覽:108
看書的app哪裡看 瀏覽:291
伺服器怎麼調大 瀏覽:4