當前位置:首頁 » 編程語言 » C語言求兩個數的公約數

C語言求兩個數的公約數

發布時間: 2022-06-10 21:36:16

㈠ 怎麼用c語言編輯出兩個數的最大公約數呀謝謝!!

#include
"stdio.h"
main()
{
int
x=0,y=0;
/*被求公倍數的兩個數*/
int
z
=
0;
/*保存臨時的取余結果*/
int
count
=
3;
/*循環計數*/
int
tmp
=
0;
/*交換x,y的臨時變數
*/
/*循環3次獲得用戶輸入,直到輸入正確,或超過次數*/
while(count
>
0)
{
printf("please
input
two
numbers\n");
if(2
!=
scanf("%d%d",&x,&y))
/*如果正確的輸入參數不等於2
就結束這次循環,並給出錯誤信息*/
{
fflush(stdin);
/*清空輸入緩沖區,否則下次輸入會有錯誤*/
count--;
printf("error:This
figure
must
be
imported
!
you
still
have
%d
opportunities.\n",count);
}
else
if(
x
==
0
||
y
==
0)
{
count--;
printf("error:The
input
not
equal
to
0!
you
still
have
%d
opportunities.\n",count);
}else
break;
}
/*如果輸入次數超過限制,則退出程序並給出提示*/
if(count
<=
0)
{
printf("You
have
no
chance
of
withdrawal
proceres
");
return;
}
/*將兩個數的大小位置固定,x永遠大於y
方便下面判斷*/
if(x
<
y)
{
tmp
=
x;
x
=
y;
y
=
tmp;
}
/*用輾轉相除法求出最大公倍數*/
while(
x
%
y
!=
0)
{
printf("%d\t/\t%d\tremainder\t%d\n",x,y,(x
%
y));
/*輸出求解過程*/
z
=
x
%
y;
x
=
y;
y
=
z;
}
printf("%d\t/\t%d\tremainder\t%d\n",x,y,(x
%
y));
/*輸出最後一次求解過程*/
printf("the
result
is
%d\n",y);
}

㈡ C語言求2個數的公約數

#include<stdio.h>
void yue(int a,int b)
{
int i,x;
for(i=1;i<=a&&i<=b;i++)
if(a%i==0&&b%i==0)
x=i; //這里是把i作為公約數,不停的算下去,吧最大的公約數賦值給x
if(x==1)//x==1
printf("a and b have no yue\n"); //;1好像不是公約數吧
else
printf("The yue is %d\n",x);
}
int main()
{
int a,b;
scanf("%d%d",&a,&b);
yue(a,b);
return 0;
}

㈢ c語言求兩個數的所有公約數和最大公約數

#include "stdio.h"
void main()
{
unsigned int a,b;
unsigned int i;
unsigned int max=1;

printf("請輸入2個整數:");
scanf("%d%d",&a,&b);

printf("%d%和%d的公約數有:",a,b);
for(i=2;i<((a>b)?a:b);i++)
{
if((a%i==0)&&(b%i==0))
{
max = i;
printf("%d ",i);
}
}
printf("\n最大公約數為:%d\n",max);
}

㈣ 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
<stdio.h>

int
main()
{

int
a,
b,
c;
//a,
b就是M和N,c是余數

int
ta,
tb;
//用來記錄a,b的臨時值

int
maxgys,mingbs;

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

scanf("%d%d",&a,&b);

ta
=
a;
tb
=
b;

if(ta
>
tb)
{ta
=
b;
tb
=
a;}

c
=
tb
%
ta;

while(c!=
0)
{

tb
=
ta;
//輾轉相除的過程

ta
=
c;

c
=
tb
%
ta;

}

printf("%d和%d的最大公約數是:
%d\n",
a,
b,
ta);

printf("%d和%d的最小公倍數是:
%d\n",
a,
b,
a
*
b
/
ta);

return
0;
}

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

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

㈦ 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語言求兩個數最大公約數

#include <stdio.h>

int main()
{
int a = 0;
int b = 0;
printf("輸入兩個數求最大公約數:");
scanf("%d%d",&a,&b);
while(a!=b)
{
if(a>b)
a = a - b;
if(a<b)
b = b - a;
}
printf("%d\n",a);
return 0;
}

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

1、相減法

#include&lt;stdio.h&gt;

int main()

{

int a,b;

int c=0;//計數器

while(1)//循環判斷的作用

{

printf("輸入兩個數字求最大公約數:");

scanf("%d%d",&a,&b);

while(a!=b)

{

if(a&gt;b)

a=a-b;

else

b=b-a;

c++;

}

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

printf("%d ",c);

}

return 0;

}

運行效果:

2、輾轉相除法:

#include&lt;stdio.h&gt;

int a,b,temp;

int Division(){

printf("請輸入兩個數(a,b): ");

scanf("%d,%d",&a,&b);

if(a&lt;b){

temp=a;

a=b;

b=temp;

}

while(a%b!=0){

temp=a%b;

a=b;

b=temp;

}

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

return 0;

}

3、窮舉法

#include&lt;stdio.h&gt;

int main()

{

int a,b,c;

int d=0;//計數器

while(1)

{

printf("輸入兩個數字求最大公約數:");

scanf("%d%d",&a,&b);

c=(a&gt;b)?b:a;//三目運算符

while(a%c!=0||b%c!=0)

{

c--;

d++;

}

printf("最大公約數是:%d ",c);

printf("%d ",d);

}

return 0;

}

㈩ c語言中如何求兩個數的最大公約數和最小公倍數

直接編寫兩個函數就行了!!
#include<stdio.h>
int yueshu(int m,int n)
{
int t;
if(m>n)
t=m,m=n,n=t; //替換,保證m為較大的數
while(n!=0)
{
t=m%n;
m=n;
n=t;
}
return m;
}
int beishu(int m,int n)
{
return m*n/yueshu(m,n); //最小公倍數即為兩個數的乘積除以最大公約數
}
main()
{
int m,n,s,t;
while(scanf("%d%d",&m,&n))
{
s=yueshu(m,n);
printf("%d\n",s);
t=beishu(m,n);
printf("%d\n",t);
}
}

熱點內容
html5canvas上傳圖片 發布:2025-02-08 00:20:44 瀏覽:168
安卓輸入法哪個詞庫好 發布:2025-02-08 00:03:47 瀏覽:90
c存儲過程數據集 發布:2025-02-08 00:03:42 瀏覽:925
qq卡的密碼在哪裡找 發布:2025-02-07 23:59:32 瀏覽:964
安卓為什麼注冊不了lysn 發布:2025-02-07 23:55:36 瀏覽:93
十個字母無壓縮 發布:2025-02-07 23:54:51 瀏覽:380
java惡作劇小程序 發布:2025-02-07 23:53:48 瀏覽:673
openvas源碼 發布:2025-02-07 23:48:14 瀏覽:318
面java 發布:2025-02-07 23:36:21 瀏覽:618
編譯原理練習題第三章答案 發布:2025-02-07 23:35:05 瀏覽:753