编程送分了

来源:百度知道 编辑:UC知道 时间:2024/08/29 08:54:06
请哪位高手用C++给编个程序 简单的 求两个数的最大公约数
和我想的不一样就行 送分了!!

#include<iostream.h>
main()
{
int a,b,x;
cin>>a;
cin>>b;
fot(x=a;x<=a*b;x+=a)
{
if(x%b==0)break;
}
cout<<x;
return o;
}

#include<iostream>
using namespace std;
main()
{
int x,y,r;
cin>>x>>y;
while (x%y>0)
{
r=x%y;
x=y;
y=r;
}
cout<<x;
}

C++3年没用了,随手写个,如果语法上有错吾怪

//假设求如下2个数的公约数(结果为9)
int num1 = 45;
int num2 = 54;

//用辗转相除法(效率比较高)
int num;
do
{
num = num2%num1;
int temp = num1;
num1 = num2%num1;
num2 = temp;
}while(num2%num1!=0);
循环结束后 num 就是最大共约数

//直接循环求值法(效率比较低 )
int num = num1>num2?num2:num1;
int i;
for(i=num;i>0;i--)
{
if(num1%i==0&&num2%i==0){
break;
}
}
循环退出时,i就是最大值