【程序16】 题目:输入两个正整数m和n,求其最大公约数和最小公倍数
2013-08-29 01:16
435 查看
方法一:
非递归的:
#include <stdio.h>
int main(){
int a,b,t,n;
while(~scanf("%d%d",&a,&b)){
n = a*b;
if(a>b){
t = a;
a = b;
b = t;
}
while(a){
t = a;
a = b%a;
b = t;
}
printf("%d %d\n",b,n/b);
}
return 0;
}
方法二:
递归的:
#include <stdio.h>
int gcd(int a,int b){return a?gcd(b%a,a):b;}
int main(){
int a,b,c;
while(~scanf("%d%d",&a,&b)){
if(a>b)c = gcd(b,a);
else c = gcd(a,b);
printf("%d %d\n",c,a/c*b);
}
return 0;
}
非递归的:
#include <stdio.h>
int main(){
int a,b,t,n;
while(~scanf("%d%d",&a,&b)){
n = a*b;
if(a>b){
t = a;
a = b;
b = t;
}
while(a){
t = a;
a = b%a;
b = t;
}
printf("%d %d\n",b,n/b);
}
return 0;
}
方法二:
递归的:
#include <stdio.h>
int gcd(int a,int b){return a?gcd(b%a,a):b;}
int main(){
int a,b,c;
while(~scanf("%d%d",&a,&b)){
if(a>b)c = gcd(b,a);
else c = gcd(a,b);
printf("%d %d\n",c,a/c*b);
}
return 0;
}
相关文章推荐
- 【程序6】 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
- c100-16 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
- 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
- 编写计算“两个整数的最大公约数”程序。 要求通过键盘输入两个整数、检查输入整数是否符合要求,并计算出其最大公约数。
- 输入两个正整数m和n,求其最大公约数和最小公倍数
- 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
- 输入m和n两个正整数,求其最大公约数和最小公倍数
- 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
- 从键盘输入两个正整数,求它们的最大公约数和最小公倍数
- 输入两个正整数m和n,求其最大公约数和最小公倍数
- 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
- 输入两个整数,求其最大公约数和最小公倍数
- Console-算法[if,while]-一输入两个正整数m和n,求其最大公约数和最小公倍数
- 输入两个正整数m和n,求其最大公约数和最小公倍数
- 输入两个正整数m和n,求其最大公约数和最小公倍数
- 输入两个正整数m和n,求其最大公约数和最小公倍数
- 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。(C语言)
- Java小程序:输入两个正整数m和n,利用辗除法求其最大公约数
- 011-题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
- Java小程序:辗除法求两个正整数最大公约数和最小公倍数