當前位置:首頁 » 編程語言 » c語言編程求兩個數的公約數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言編程求兩個數的公約數

發布時間: 2022-05-14 22:05:40

c語言程序編寫:計算兩個數的最大公約數

#include<stdio.h>
#include <conio.h>

void main()
{
int m,n,k;
while (1)
{
printf("輸入m和n(m>n):");
scanf("%d %d",&m,&n);
if(m<n)
printf("輸入錯誤,請重新輸入\n");
else break;
}
while (1)
{
k=m%n;
if(k==0)
break;
m=n;
n=k;
}
printf("m和n的最大公約數是:%d",n);
getch();
}

Ⅱ c語言求最大公約數

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

Ⅲ C語言程序:求兩個數的最大公約數和最小公倍數。

#include<iostream>
using
namespace
std;
int
f(int
p,int
q);
int
g(int
u,int
v,int
w);
int
main()
{
int
x,y,m,n;
cout<<"請輸入兩個整數"<<endl;

cin>>x>>y;

m=f(x,y);
n=g(x,y,m);
cout<<"這兩個數的最大公約數是"<<m<<"\n這兩個數的最小公倍數是"<<n<<endl;
}
int
f(int
p,int
q)
{

int
r;

p>q?r=q:r=p;
//找兩個數中最小的最小的

for(;p%r!=0||q%r!=0;r--);

return
r;
}
int
g(int
u,int
v,int
w)
//w是最大公約數
{

int
g;

g=u*v/w;
return
g;
}

Ⅳ 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語言編程求輸入兩個數的最大公約數和最小公倍數,怎麼做

輸入兩個正整數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語言編程中,求兩個數的最大公約數和最小公倍數演算法是怎樣的

#include
main()
{
int
m,n,r;
printf("請輸入兩個數字:");
scanf("%d%d",&m,&n);
while(r!=0)
{
m=n;
n=r;
r=m%n;
}
printf("兩個數字的最大公約數為%d\n",n);
getch();
}
這個演算法就是把你初中算最大公約數的過程給程序化了。。你用以前的方法在紙上算算最大公約數
再對照WHILE裡面的演算法
就能明白咋回事了。。

Ⅶ 大一C語言,問題,編程,輸入兩個數。求兩個數的最大共約數。

演算法:輾轉取余。
比如,求12和15的最大公約數,比較大的數對比較小的數進行取余。15%12=3,12%3=0,所以3就是它們的最大公約數。具體做法是,你輸兩個整數m和n,假設m是這兩個數中比較大的一個,m對n進行取余,如果結果不為0,把原來n的值賦給m,把m對n取余得到的結果賦給n,這樣就得到了一組新的m和n的值。用這新的m再次對新的n進行取余,如果結果不為0,那麼把這個n的值賦給m,把這次m對n取余得到的結果賦給n,……直到m%n=0,此時m的值就是原來m、n的最大公約數。最小公倍數=原來的連個數的乘積除以最大公約數。
#include
<stdio.h>
void
main()
{
int
p,r,m,n;
printf("請輸入兩個正整數m,n:");
scanf("%d%d",&n,&m);
p=n*m;
if(m<n)
{
r=m;
m=n;
n=r;
}
while(n!=0)
{
r=m%n;
m=n;
n=r;
}
printf("它們的最大公約數為:%d\n",m);
printf("它們的最小公約數為:%d\n",p/m);
}

Ⅷ c語言求兩個數的最大公約數

求兩個數的最大公約數就是用短除法求出這兩個數的公因數,最大公因數就是這兩個數的最大公約數。

Ⅸ 如何用C語言求兩個數的最大公約數的三種演算法

1、相減法
#include<stdio.h>
int
main()
{
int
a,b;
int
c=0;//計數器
while(1)//循環判斷的作用
{
printf("輸入兩個數字求最大公約數:");
scanf("%d%d",&a,&b);
while(a!=b)
{
if(a>b)
a=a-b;
else
b=b-a;
c++;
}
printf("最大公約數是:%d\n",a);
printf("%d\n",c);
}
return
0;
}
運行效果:

2、輾轉相除法:
#include<stdio.h>
int
a,b,temp;
int
Division(){
printf("請輸入兩個數(a,b):\n");
scanf("%d,%d",&a,&b);
if(a<b){
temp=a;
a=b;
b=temp;
}
while(a%b!=0){
temp=a%b;
a=b;
b=temp;
}
printf("最大公約數為:%d\n",b);
return
0;
}
3、窮舉法
#include<stdio.h>
int
main()
{
int
a,b,c;
int
d=0;//計數器
while(1)
{
printf("輸入兩個數字求最大公約數:");
scanf("%d%d",&a,&b);
c=(a>b)?b:a;//三目運算符
while(a%c!=0||b%c!=0)
{
c--;
d++;
}
printf("最大公約數是:%d\n",c);
printf("%d\n",d);
}
return
0;
}

Ⅹ 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);

}}

(10)c語言編程求兩個數的公約數擴展閱讀

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;//此函數將輾轉相除的過程以遞歸的形式呈現,簡化程序屬於常規套路。

}