Ⅰ c語言最小公倍數演算法
演算法有很多啊
最簡單的 暴力求
比如
intfunc(inta,intb)
{
intr;
for(r=a<b?b:a;;r++)
if(r%a==0&&r%b==0)break;
returnr;
}
還有求所有質因子 然後剔除相同的 乘起來 標準的數學演算法
或者用輾轉相除求最大公約數 然後用乘積去除
方法很多的
Ⅱ C語言中最小公倍數的問題
親,輸入14,10就對了。。。看看你那個scanf就明白啦
Ⅲ 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>
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>
intmain()
{
inti,j,k;
scanf("%d%d",&i,&j);
for(k=i;k%i||k%j;k++);
printf("%d和%d的最小公倍數為%d ",i,j,k);
return0;
}
Ⅵ C語言求最小公倍數
# include <stdio.h>
#include<string.h>
const int MAX=2000;
int lcm(int m, int n)
{
int i,t;
if(m<n)
{t=m;m=n;n=t;}
for(i=m;i>=1;i++)
//if(i/m*m==m&&i/n*n==n) 這樣是不對的i/m是整除的,比如3/4=1
if(i%m==0&&i%n==0)//判斷整除是這么判斷的
break;
return i;
}
int main (void)
{
int m,n;
scanf("%d%d",&n,&m);
printf("%d\n",lcm(n,m));
return 0;
}
Ⅶ 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 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);
}
(9)c語言最小公倍數擴展閱讀
演算法思想
利用格式輸入語句將輸入的兩個數分別賦給 a 和 b,然後判斷 a 和 b 的關系,如果 a 小於 b,則利用中間變數 t 將其互換。
再利用輾轉相除法求出最大公約數,進而求出最小公倍數。最後用格式輸出語句將其輸出。
#include<stdio.h>是在程序編譯之前要處理的內容,稱為編譯預處理命令。編譯預處理命令還有很多,它們都以「#」開頭,並且不用分號結尾,所以是c語言的程序語句。
Ⅹ 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;
}
(10)c語言最小公倍數擴展閱讀:
c語言書寫規則:
1、一個說明或一個語句佔一行。
2、用{} 括起來的部分,通常表示了程序的某一層次結構。{}一般與該結構語句的第一個字母對齊,並單獨佔一行。
3、低一層次的語句或說明可比高一層次的語句或說明縮進若干格後書寫。以便看起來更加清晰,增加程序的可讀性。在編程時應力求遵循這些規則,以養成良好的編程風格。
網路-c語言