打卡

1.问题:求两个正整数之间的最大公约数。

2.思路:用暴击穷举法,简单粗暴地把 1~ y(前面已经假设 x > y)都列出来分别判断是否为 x、y 的公约数,然后再找到其中最大的一个。

3.程序流程图:

 

4.代码实现:

#include <iostream>
using namespace std;

int main()
{
int x,y;
cin>>x>>y;
int count=1;
int k=1;
int min=1;
while(k>0){
int k=2;
if(x%k==0&&y%k==0){
count=count*k;
x=x/k;
y=y/k;
}
else{
while(k>0){
k++;
if(x%k==0&&y%k==0){
count=count*k;
x=x/k;
y=y/k;
break;
}
int min=(x<y)?x:y;
if(k>min)
break;
}
}
int min=(x<y)?x:y;
if(k>min)
break;
}
cout<<x*count<<"与"<<y*count<<"的最大公约数为"<<count<<endl;
return 0;
}

posted @ 2023-05-24 20:00  £剑影メ随见彡  阅读(11)  评论(0)    收藏  举报