公倍數的編程
A. 編程實現輸入兩個整數,輸出其最大公約數和最小公倍數。
舉例:輸入兩個正整數m和n,輸出它們的最小公倍數和最大公約數。
代碼:
#include <stdio.h>
int main(void)
{
int gcd, lcm, m, n;
int repeat, ri;
scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++)
{
scanf("%d", &m);
scanf("%d", &n);
if(m <= 0 || n <= 0)
{ printf("m <= 0 or n <= 0");
continue;
}
for(gcd=m; gcd >= 1; gcd--){
if(m % gcd == 0 && n % gcd == 0) break;
}
lcm = m * n / gcd;
printf("%d, %d ",lcm, m, n, gcd, m, n);
}
}
運行效果:
輸入輸出示例:括弧內為說明
輸入:
3(repeat=3)
37(m=3,n=7)
244(m=24,n=4)
2418(m=24,n=18)
輸出:
21,1.
24,4.
72,6.

(1)公倍數的編程擴展閱讀:
輾轉相除法:
#include <stdio.h>
int main()
{
int m,n;
scanf("%d %d",&a,&b); //輸入兩個整數
int num1,num2,c; //num1,num2作為計算時的變數,c作為中間變數
if(a>=b) {num1=a; num2=b; }
else {num1=b; num2=a; }//通過比較對num1和num2賦值,便於計算
while(num2>0){
c=num1%num2;
num1=num2;
num2=c;}//輾轉相除,num2=0時,num1=最大公因數
printf("最大公因數:%d ",num1);
printf("最小公倍數:%d "m*n/num1);
return 0;
}
B. c語言編程:輸入三個正整數,求其最大公約數和最小公倍數。
#include<數帆純stdio.h>轎謹
int main()
{
int x, y, z, i, j;
scanf_s("%d%d%d", &x, &y, &z);
for (i = x; i > 0; i--)
{
if (x % i == 0 && y % i == 0 && z % i == 0)
break;
}
for (j = x; ; j++)
{
if (j % x == 0 && j % y == 0 && j % z == 0)
break;
}
printf("薯咐%d %d", i, j);
return 0;
}
C. 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);
}}

(3)公倍數的編程擴展閱讀
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;//此函數將輾轉相除的過程以遞歸的形式呈現,簡化程序屬於常規套路。
}
