求最小公倍數c語言
『壹』 c語言如何求最小公倍數
按照數學定義求。
最簡單的 從較大數開始,一直累加出一個兩個的共同倍數。
也可以先求最大公約數 然後用兩個數的積除以最大公約數
intfunc(inta,intb)
{
intr;
for(r=a;;r++)
if(r%a==0&&r%b==0)break;
returnr;
}
『貳』 c語言求最小公倍數
1、首先介紹一下求最小公倍數的經典方法:
輾轉相除法
有兩整數a和b:
①a%b得余數c
②若c=0,則b即為兩數的最大公約數
③若c≠0,則a=b,b=c,再回去執行①
a*b除以最大公約數等於最小公倍數
2、因此原問題也化為最小公倍數和最大公約數一起求了。程序的演算法如下:
#include<stdio.h>
int lowest_common_multiple(int m,int n);
int main()
{
int m,n,c;
printf("請輸入m的值: ");
scanf("%d",&m);
printf("請輸入n的值: ");
scanf("%d",&n);
c=lowest_common_multiple( m, n);
printf("請輸出最小公倍數c的值: ");
printf("%d ",c);
return 0;
}
int lowest_common_multiple(int m,int n)
{
int remainder,m1,n1;
m1=m;
n1=n;
while (n != 0) {
remainder = m % n;
m = n;
n = remainder;
}
//printf("輸出最大公約數m: %d ", m); //此時的m為最大公約數
return m1*n1/m;
}
3、程序的輸出如下:
4、此題注釋的哪一個是輸出最大公約數的。
『叄』 求最小公倍數c語言代碼
#include <stdio.h>
int gcd(int a,int b)
{return b?gcd(b,a%b):a;
}
int main()
{ int a,b;
scanf("%d%d",&a,&b);
printf("%d ",a*b/gcd(a,b));
return 0;
}
『肆』 C語言中,求兩個數的最小公倍數,的「高效」演算法是
這思路我自己想的,但是我也說不太明白,反正我知道怎麼回事
1先判斷大數%小數是不是0,是0那麼大數就是最小公倍數
2不是的話,讓大數%小數得到一個數,讓小數%得到的數,如果得0
那麼讓大數*(小數/(大數%小數)),得到得數是最小公倍數
3如果2中小數%得到的這個數不等於0,那麼恭喜你,這兩個數的最小公倍數就是:大數*小數
4如果這兩個數相等,那麼,隨便一個都是最小公倍數
純手打,今天剛好做這個題,看到網上沒什麼答案,我就寫寫我的思路
C++語法如下:
int pd(int A,int B);
int main() {int i, k;goto C;
C: {
printf("第一個數:"); scanf("%d", &i);
printf("第二個數:"); scanf("%d", &k);
printf("這兩個數的公倍數為:%d\n\n", pd(i, k));
goto C; }
return 0;
}
int pd(int A, int B) {
int P;
if (A > B) {
if (A%B == 0) { P = A; }
else if (B % (A%B) == 0) { P = A*(B / (A%B)); }
else { P = A*B; }
}
else if (B > A) {
if (B%A == 0) { P = B; }
else if (A % (B%A) == 0) { P = B*(A / (B%A)); }
else { P = B*A; }
}
else { P = A; }
return P;
}
『伍』 用C語言編寫程序求兩個數的最小公倍數,並輸出
如圖使用輾轉相除法求最小公倍數:
(5)求最小公倍數c語言擴展閱讀:
輾轉相除法, 又名歐幾里德演算法(Euclidean algorithm),是求最大公約數的一種方法。
它的具體做法是:用較大數除以較小數,再用出現的余數(第一餘數)去除除數,再用出現的余數(第二餘數)去除第一餘數,如此反復,直到最後余數是0為止。如果是求兩個數的最大公約數,那麼最後的除數就是這兩個數的最大公約數。
兩個數的最大公約數是指能同時整除它們的最大正整數。
設兩數為a、b(a2b),求a和b最大公約數(a,b)的步驟如下:
(1)用a除以b(a2b),得a÷b=q..n(0≤n)。
(2)若rn=0,則(a,b)=b;
(3)若r10,則再用b除以n,得b÷n=q..2(0sr2)
(4)若r2=0,則(a,b)=rn;若r20,則繼續用r1除以r2,.…,如此下去,直到能整除為止。
其最後一個余數為0的除數即為(a,b)的最大公約數。
『陸』 最小公倍數怎麼求演算法c語言
求兩個正整數的最小公倍數,可以有很多種不同的計算方法。其中下面是一種用C語言實現的計算方法。
int gcd(int a,int b)
{int r;
while(b)
r=a%b,a=b,b=r;
return a;
}
『柒』 如何用C語言求最小公倍數。。。
我代碼復制給你看。
#include<stdio.h>
int GCD(int a,int b) //GCD表示最大公約數
{
int z= a<b?a:b; //我從輸入的兩個數中較小的那個開始判斷是不是最大公約數,不是就一直-1
while(z>=1) // 直到找到能同時被X,Y整除的數,它就是最大公約數了。
{
if(a%z==0&&b%z==0) break;//最快滿足這個條件的Z就是最大公約數
z--;
}
return z;
}
int LCM(int a,int b) //LCM表示最小公倍數
{
int z=a>b?a:b; //我從輸入的兩個數中最大的那個開始判斷是不是最小公倍數,不是就一直+1
while(z<=(a*b)) //兩個非零數a,b,我們知道a*b肯定是它的公倍數 ,所以從兩個數的最大那個數開始
{ //一直到a*b肯定存在最小公倍數
if(z%a==0&&z%b==0)break; //最快滿足這個條件的Z就是最小公倍數
z++;
}
return z;
}
int main()
{
while(1)
{
int x,y,z,d;
printf("請輸入兩個整數:");
scanf("%d %d",&x,&y);
z=GCD(x,y);
d=LCM(x,y);
printf("這兩個數的最大公約數是%d\n",z);
printf("這兩個數的最小公倍數是%d\n",d);
printf("\n");
}
}
『捌』 C語言編程中最小公倍數怎麼求
思想:輸入的兩個數,大數m是小數n的倍數,那麼大數m即為所求的最小公倍數;若大數m不能被小數n整除則需要尋找一個能同時被兩數整除的自然數。
從大數m開始依次向後遞增直到找到第一個能同時被兩數整除的數為止,所以循環變數i的初值為尋找第一個能同時被兩整數整除的自然數,並將其輸出。需要注意的是,在找到第一個滿足條件的i值後,循環沒必要繼續下去,所以用break來結束循環。
#include<stdio.h>
int main()
{
int m, n, temp, i;
printf("Input m & n:");
scanf("%d%d", &m, &n);
if(m<n) /*比較大小,使得m中存儲大數,n中存儲小數*/
{
temp = m;
m = n;
n = temp;
}
for(i=m; i>0; i++) /*從大數開始尋找滿足條件的自然數*/
if(i%m==0 && i%n==0)
{/*輸出滿足條件的自然數並結束循環*/
printf("The LCW of %d and %d is: %d ", m, n, i);
break;
}
return 0;
}
(8)求最小公倍數c語言擴展閱讀:
c語言書寫規則:
1、一個說明或一個語句佔一行。
2、用{} 括起來的部分,通常表示了程序的某一層次結構。{}一般與該結構語句的第一個字母對齊,並單獨佔一行。
3、低一層次的語句或說明可比高一層次的語句或說明縮進若干格後書寫。以便看起來更加清晰,增加程序的可讀性。在編程時應力求遵循這些規則,以養成良好的編程風格。
網路-c語言
『玖』 C語言求最小公倍數怎麼求
#include <stdio.h>
int GCD(int num1,int num2)
{
if (num1 % num2 == 0)
return num2;
else
return GCD(num2, num1 % num2);
}
int LCM(int a,int b)
{
int temp_lcm;
temp_lcm = a*b/GCD(a, b); //最小公倍數等於兩數之積除以最大公約數
return temp_lcm;
}
int main()
{
int a,b;
while (scanf("%d%d",&a,&b)!= EOF)
{
printf("%d\n",LCM(a,b));
}
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);
}
(10)求最小公倍數c語言擴展閱讀
演算法思想
利用格式輸入語句將輸入的兩個數分別賦給 a 和 b,然後判斷 a 和 b 的關系,如果 a 小於 b,則利用中間變數 t 將其互換。
再利用輾轉相除法求出最大公約數,進而求出最小公倍數。最後用格式輸出語句將其輸出。
#include<stdio.h>是在程序編譯之前要處理的內容,稱為編譯預處理命令。編譯預處理命令還有很多,它們都以「#」開頭,並且不用分號結尾,所以是c語言的程序語句。