C语言——求最大公约数和最小公倍数的简单程序?
首先我们输入两个整数m和n,小的数赋值给m,大的数给n。先找n的约数,用一个中间量i代替m,从i开始,如果n%i==0,则说明n,m的最大公约数就是m,否则执行第3步,i自减1,再执行n%i,判断n%i==0,如果是说明n能被i整除;执行第4步,否则再次执行第3步,判断m%i是否等于0,如果是说明n和m能同时被i整除,最大公约数为i;否则执行第3步,最小公倍数比较容易求,只要两数相乘,然后除以最大公约数就可以得到。
c语言求多个数最大公约数算法?
要求多个数的最大公约数,可以使用欧几里得算法。首先,取前两个数的最大公约数,然后再将这个最大公约数与下一个数求最大公约数,依次类推,直到所有数都求完。
欧几里得算法通过不断取余操作,将两个数的最大公约数转化为两个数的余数的最大公约数,直到余数为0,此时前一个余数即为最大公约数。
这样,可以通过循环遍历所有数,不断更新最大公约数,最终得到多个数的最大公约数。
int i,a=3,b=6; int max=b; //初始化b大,下面判断如果a>b就把a给max //判断a,b大小 if(a>b) max=a; for(i=max;i>0;i--) //公约数肯定不大于两数中最大的,所以从最大的往下找,找到的第一个就是最大 { if(a%i==0 && b%i==0) { printf("最大公约数%d",i); break; //找到最大的就退出 } }
C语言编程:输入两个正整数m和n,求其最大公约数和最小公倍数,急!急?
#include<stdio.h>
int main(void)
{
int m,n;
int t;
int r;
int product;
printf("请输入2个正整数(空格分隔):");
scanf("%d %d",&m,&n);
if(m < n) { //当 m 较小时,将 m 和 n 互换
t = m;
m = n;
n = t;
}
product = m * n;
while(1) {
r = m % n;
if(r == 0) {
printf("最大公约数是:%d\n最小公倍数是:%d\n",n,product/n);
break;
}
else {
m = n;
n = r;
}
}
return 0;
}
c语言程序题,输入两个正整数m和n,求其最大公约数和最小公倍数?
#include<stdio.h>
int main(){
int a,b,num1,num2,temp;
printf("please input two number:\n");
scanf("%d%d",&num1,&num2);
if(num1<num2){
temp = num1;
num1 = num2;
num2 = temp;
}
a = num1;
b = num2;
while(b!=0){
temp = a%b;
a=b;
b=temp;
}
printf("gongyueshu:%d\n",a);
printf("gongbeishu:%d\n",num1*num2/a);
}
还没有评论,来说两句吧...