http://acm.hdu.edu.cn/showproblem.php?pid=1108
#include<iostream>//这里用的暴力循环的方法,没有考虑它的时间复杂度,还可以有辗转相除法, using namespace std; int main(){ int n=0,m=0,k=1,minG; while(cin>>n>>m){ if(n>m){ for(int i=1;i<=m;i++){ if(n%i==0 && m%i==0) k=i; } } else { for(int i=1;i<=n;i++){ if(n%i==0 && m%i==0) k=i; } } minG=m/k*n;//这里注意要先除后乘, cout<<minG<<endl; } return 0; }
下面是有辗转相除法做的,
1 #include<iostream> 2 using namespace std; 3 int main(){ 4 int n,m,t,da,xiao; 5 while(cin>>n>>m){ 6 da = (n>m)?n:m; 7 xiao = (n<m)?n:m; 8 while(xiao != 0){ 9 t = da % xiao; 10 da = xiao; 11 xiao = t; 12 } 13 cout<<n/da*m<<endl; 14 } 15 return 0; 16 }