① 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語言求兩個數的最大公約數的步驟了。