第一个网上方法多的是,先用递归或者循环求两个数a,b的最大公因数,然后用a*b/最大公因数就行
第二个省事的话用vector<int>去写,用while(cin>>num) {if(num==0) break;else push_back......};,在循环同时统计sum和其他数据
网上可能有关于最小公倍数更优的算法,建议百度
程序代码:
#include <iostream>
using namespace std;
int gcd(int a,int b);
int lcm(int a,int b);
int main( void ) {
unsigned a, b;
if( !(cin>>a>>b) )
return 1;
cout << lcm(a,b) << endl;
}
int gcd(int num1,int num2) {
if(num1%num2==0)
return num2;
else return gcd(num2,num1%num2);
}
int lcm(int a,int b) {
int temp_lcm;
temp_lcm=a*b/gcd(a,b);//最小公倍数等于两数之积除以最大公约数
return temp_lcm;
}