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語言編求最大公約數和最小公倍數的程序
就發第一個吧,沒分沒動力...
因為2個題目是有聯系的,向1樓說的那樣
#include
<stdio.h>
main()
{
int
a,b,c,i;
printf("求2個數的最大公約數\n");
printf("輸入兩個數用空格隔開,再回車:\n");
scanf("%d",&a);
scanf("%d",&b);
for(i=1;i<=a||i<=b;i++)
{
if(a%i==0&&b%i==0)
c=i;
}
printf("最大公約數是:%d\n",c);
return
0;
}
補上
#include
<stdio.h>
main()
{
int
a,b,c,i;
printf("求2個數的最小公倍數\n");
printf("輸入兩個數用空格隔開,再回車:\n");
scanf("%d",&a);
scanf("%d",&b);
for(i=1;i<=a||i<=b;i++)
{
if(a%i==0&&b%i==0)
c=i;
}
printf("最小公倍數是:%d\n",a*b/c);
return
0;
}
Ⅲ c語言如何求最大公約數和最小公倍數
#include <stdio.h>
int main()
{
int a,b,c,m,t;
printf("請輸入兩個數: ");
scanf("%d%d",&a,&b);
if(a<b)
{
t=a;
a=b;
b=t;
}
m=a*b;
c=a%b;
while(c!=0)
{
a=b;
b=c;
c=a%b;
}
printf("最大公約數是: %d ",b);
printf("最小公倍數是: %d ",m/b);
}
(3)c語言最大公約數最小公倍數擴展閱讀
演算法思想
利用格式輸入語句將輸入的兩個數分別賦給 a 和 b,然後判斷 a 和 b 的關系,如果 a 小於 b,則利用中間變數 t 將其互換。
再利用輾轉相除法求出最大公約數,進而求出最小公倍數。最後用格式輸出語句將其輸出。
#include<stdio.h>是在程序編譯之前要處理的內容,稱為編譯預處理命令。編譯預處理命令還有很多,它們都以「#」開頭,並且不用分號結尾,所以是c語言的程序語句。
Ⅳ c語言函數調用求最大公約數和最小公倍數
#include<stdio.h>
int a;
int _Y(int x,int y);
int main()
{
int a,b,c,d;
printf(「請輸入數字:」);
scanf("%d,%d",&c,&d);//此處注意在輸出的時候數字之間要打都好,不然輸出結果錯誤
b=_Y(c,d);
a=c*d/b;
printf(「最大公約數為:%d 」,b);
printf(「最小公倍數為:%d 」,a);
return 0;
}
int _Y(int x,int y)
{
int e;
if(x<y)
{
e=x;
x=y;
y=e;
}
while((e=x%y)!=0)
{
x=y;
y=e;
}
return(y);
}
總結:while循環是先判斷後循環 ,而do–while循環是先循環後判斷。
網路——while(循環語句及英文單詞)
Ⅳ C語言求最大公約數和最小公倍數
if(m%i==0 ||n%i==0) x=i;
這句有問題吧
應該是if(m%i==0 &&n%i==0) x=i;
Ⅵ C語言求最大公約數和最小公倍數
最大公約數和求最小公倍數
1、對兩個正整數a,b如果能在區間[a,0]或[b,0]內能找到一個整數temp能同時被a和b所整除,則temp即為最大公約數。
2、對兩個正整數a,b,如果若干個a之和或b之和能被b所整除或能被a所整除,則該和數即為所求的最小公倍數。
窮舉法求兩數的最大公約數
int divisor(int a,int b)
{
int temp;//定義義整型變數
temp=(a>b)?b:a;//采種條件運算表達式求出兩個數中的最小值
while(temp>0){
if(a%temp==0&&b%temp==0)//只要找到一個數能同時被a,b所整除,則中止循環
break;
temp--;//如不滿足if條件則變數自減,直到能被a,b所整除
}
return temp;//返回滿足條件的數到主調函數處
}
//窮舉法求兩數的最小公倍數
int multiple(int a,int b)
{
int p,q,temp;
p=(a>b)?a:b;//求兩個數中的最大值
q=(a>b)?b:a;//求兩個數中的最小值
temp=p;//最大值賦給p為變數自增作準備
while(1){//利用循環語句來求滿足條件的數值
if(p%q==0)
break;//只要找到變數的和數能被a或b所整除,則中止循環
p+=temp;//如果條件不滿足則變數自身相加
}
return p;
}
(6)c語言最大公約數最小公倍數擴展閱讀:
while使用示例
C++
int a=NULL;
while(a<10)
{
a++;//自加
if(a>5)//不等while退出循環,直接判斷循環
{
break;//跳出循環
}
}
結果:結束後a的值為6。
javascript
下面的例子定義了一個循環程序,這個循環程序的參數i的起始值為0。該程序會反復運行,直到i大於10為止。i的步進值為1。
<html>
<body>
<script type="text/javascript">
var i=0
while(i<=10)
{document.write("The number is"+i);
document.write("<br/>");
i=i+1;}
</script>
</body>
</html>
結果
The number is0
The number is1
The number is2
The number is3
The number is4
The number is5
The number is6
The number is7
The number is8
The number is9
The number is10
網路——while
Ⅶ [C語言]編程:輸入兩個正整數,求其最大公約數和最小公倍數
程序如下:
main(){
int a,b,r,gcd,lcm;
printf("請輸入兩個正整數:");
scanf("%d%d",&a,%b);
while(r=a%b){
a=b;
b=r;
}
gcd=b;
lcm=a*b/gcd;
printf("gcd=%d,lcm=%d\n",gcd,lcm);
}
就是這樣。
有什麼問題請留言。
Ⅷ c語言中最大公因數和最小公倍數
#include <stdio.h>
main()
{
int a,b,c,m,t;
printf("請輸入兩個數:\n");
scanf("%d%d",&a,&b);
if(a<b)
{
t=a;
a=b;
b=t;
}
m=a*b;,
c=a%b;
while(c!=0)
{
a=b;
b=c;
c=a%b;
}
printf("最大公約數是:\n%d\n",b);
printf("最小公倍數是:\n%d\n",m/b);
}
Ⅸ 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);
}}
(9)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;//此函數將輾轉相除的過程以遞歸的形式呈現,簡化程序屬於常規套路。
}
Ⅹ 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;
}