c语言最大公约数和最小公倍数_初级编程C++题目:11H1038: 最大公约数最小公倍数...

169991389eb9c58d7ef54f688f25add1.png

最大公约数

时间限制: 1 Sec 内存限制: 128 MB

题目描述

有两个正整数,想知道它们的最大公约数和最小公倍数,你有什么办法?

输入

一行:两个数m,n (0

输出

一行:最大公约数和最小公倍数,用空格隔开

c9129e4faa8056200e11f2843c4ab98c.png

最大公倍数

样例输入

6 8

样例输出

2 24

提示

算法分析:分别用m,n,r来表示被除数、除数和余数

(1) 求M/N的余数r; (2)若r=0;,则n为最大公约数;若r<>0,则执行第(3)步

(3)将n的值赋给M,将r的值赋给N

(4)返回重新执行第(1)步

648e3f88378357999f705c360e8005ff.png

答案在下方

答案:

#includeusing namespace std;bool pd(long long n){ bool t=true; if(n<=1) t=false; for(long long i=2;i*i<=n;i++) { if(n%i==0) t=false; } return t;}int main(){ int n,m,y=1,b=1,t1,t2,i; cin>>m>>n; t1=m;t2=n; i=2; while(!pd(t1)&&!pd(t2)) { if(t1%i==0&&t2%i==0) { t1/=i;t2/=i; y*=i; } else { i++; if(i%2==0) { i=2; } if(i%3==0) { i=3; } } } t1=m;t2=n; i=2; while(!pd(t1)&&!pd(t2)) { if(t1%i==0&&t2%i==0) { t1/=i;t2/=i; b*=i; } else { i++; if(i%2==0) { i=2; } if(i%3==0) { i=3; } } } b*=t1*t2; cout<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值