求最大公约数和最小公倍数

来源:互联网 发布:python 爬虫 去标签 编辑:程序博客网 时间:2024/06/13 02:03

最小公约数=num1*num2/最大公倍数

1、辗转相除法

需要多设一个变量c

<span style="font-size:14px;">#include<stdio.h>int main(){int num1=0;int num2=0;int a=0;int b=0;int c=0;scanf("%d %d",&num1,&num2);a=num1;b=num2;while(b!=0){ //若余数不为0,则继续相除,直到余数为0 c=a%b;a=b;b=c;}printf("The largest common divisor:%d\n", a);printf("The least common multiple:%d\n", num1*num2/a);return 0;}</span>

2、相减法

#include<stdio.h>int main ()  {int num1=0;int num2=0;int a=0;int b=0;scanf ("%d %d", &num1, &num2);a=num1;b=num2;while ( a!=b) //若a, b不相等,则大数减小数,直到相等为止if (a>b)  a=a-b;else  b=b-a;printf("The largest common divisor:%d\n", a);printf("The least common multiple:%d\n", num1*num2/a);return 0;}



0 0