杭电acm 1108题

时间:2023-03-09 13:08:07
杭电acm 1108题

这是一道求两个整数最大公倍数的问题,题目比较简单....

直接使用穷举法计算,数据不是很大....

#include "iostream"

using namespace std;

int main(void)
{
int a1,a2;
int i;
while(cin>>a1>>a2)
{
if(a1>a2)
i=a1;
else i=a2;
for(;;i++)
{
if((i%a1==)&&(i%a2==))
{cout<<i<<endl;break;}
}
}
return ;
}

下面一种使用的是一种技巧来计算的....

#include <iostream>
using namespace std; int lcm(int a,int b);
//最小公倍数:lease common multiple
//Precondition:a,b为两个正整数,且不为0
//Postcondtion:返回a,b的最小公倍数
int main()
{
int a,b;
while()
{
cout << "请输入两个正整数:";
cin >> a >> b;
cout << a << "与" << b << "的最小公倍数为" << lcm(a,b) << endl;
}
return ;
} int lcm(int a,int b)
{
int max = (a >= b?a:b),min = (a < b?a:b),i;
for(i = ;;i++)
{
if((max * i) % min == )
{
return (max * i);
}
}
}