很奇怪,不知这个程序哪出错了?
这是一道关于求两数最大公约数与最小公倍数最笨的但最易想到的方法,编译通过了,但当输入两个不能整除的数时(如8,12),不能得出正确结果,请教大家错误出在哪了?
#include "stdafx.h"
#include<iostream>
using namespace std;
int fun1(int i,int j)
{
int temp;
if(i<j)
{temp =j;j=i;i=temp;};
int k;
for(k=j;k>1;j--)
{if ((i%k==0)&&(j%k==0))
return k;}
return 1;
}
//错误很可能出在这里了,但不知怎么改
int _tmain(int argc, _TCHAR* argv[])
{cout<<"enter two number:";
int x,y;
cin>>x>>y;
cout<<"最大公约数是:"<<fun1(x,y)<<endl;
cout<<"最小公倍数是:"<<x*y/fun1(x,y);
return 0;
}