最大公約最小公倍數c語言
『壹』 c語言,求最小公倍數和最大公約數
震驚,您的來gcd返回值為0!
return才會自返回值啊,printf是不會返回值的。這樣的話d就賦值為0,然後/0就崩了。
你可以試試這個:
#include<stdio.h>
int gcd(int a,int b)
{
if(a==0)return b;
return gcd(b%a,a);
}
int a,b;
int main()
{
scanf("%d%d",&a,&b);
printf("%d\n%d",gcd(a,b),a*b/gcd(a,b));
return 0;
}
『貳』 c語言輸入兩個整數求最大公約數和最小公倍數
#include <stdio.h>
void main()
{
int m,n,k=0,t,a,b;//k要初始化一下
printf("請輸入兩個正整數:");
scanf("%d%d",&m,&n);
a=m;
b=n;//用a和b保存輸入的兩個數,因為後面還要用到
if(m<n)
{
t=m;
m=n;
n=t;
}//這里應該是如果m<n就把m和n交換,不是你那麼寫的
while(k!=0)
{
k=m%n;
m=n;
n=k;
}
printf("最大公約數:%d ",m);
printf("最小公倍數:%d ",a*b/m);//你m和n值已經變了,所以要用ab
}
『叄』 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;
}
(3)最大公約最小公倍數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語言
求最大公約數和最小公倍數的方法有很多種。最樸素的是用窮舉法。從小到大窮舉來找最小公倍數。從兩個數當中的較小的一個數,開始從大到小窮舉來找最大公約數。效率比較高一點的是採用輾轉相除,法求最大公約數。得到最大公約數以後,再用兩數的乘積除以最大公約數,就得到了最小公倍數。
『伍』 在c語言中如何求最大公約數和最小公倍數
輸入的時候要輸入10,5
要中間有一個逗號,而不是空格。
你的scanf中兩個%d之間有一個逗號
『陸』 c語言最小公倍數和最大公約數
簡單的循環,a為大數,b為小數,一個遞增一個遞減,直至找到最大和最小。
『柒』 c語言編程求最大公約數和最小公倍數
#include<stdio.h>
int
main()
{
int
m,n;
int
divisor,dividend,res;/*除數
被除數
余數*/
scanf("%d%d",&m,&n);
if(m>0&&n>0)
{
if(m>=n)
{
divisor=n;
dividend=m;
}
else
{
divisor=m;
dividend=n;
}
res=dividend%divisor;
while(res!=0)//循環體是三條語句,不加大括弧循環只執行一條語句
{
dividend=divisor;
divisor=res;
res=dividend%divisor;
}
printf("%d",divisor);
}
else
printf("error!\n");
return
0;
}
兩數相乘除以最大公約數就是最小公倍數
『捌』 最大公約數最小公倍數c語言
最大公約數最小公倍數c語言:
int gcd(int a,int b)
{return b?gcd(b,a%b):a;
}
int lcm=a*b/gcd(a,b);
『玖』 c語言求最大公因數和最小公倍數的方法
基本的辦法還是輾轉相除法,做到最後余數為0,用%運算,模即是最大公約數,最小公倍數等於兩個數的積除以最大公約數。