求公约数的方法求教
这个方法找到的公约数总是不对,求大神指教下哪里出的错误。
#include<iostream>
using namespace std;
int main()
{
int m;
int n;
int r;
cin>>m>>n;
int temp;//临时变量temp
temp=1;
while(temp<m&&temp<n)
{
if(m%temp==0&&n%temp==0)
{
r=temp;
temp++;
}
temp++;
}
cout<<r;
}
[解决办法]
while(temp<=m&&temp<=n)
比如80和40。
像你那样,到39就没了。
[解决办法]
你的程序功能应该是输出了最大公约数,然而会遇到一个数是另一个数的约数,把while循环条件里的<全部改成<=