最小公倍数
Problem Description
给定两个正整数,计算这两个数的最小公倍数。
Input
输入包含多组测试数据,每组只有一行,包括两个不大于1000的正整数.
Output
对于每个测试用例,给出这两个数的最小公倍数,每个实例输出一行。
Sample Input
10 14
Sample Output
Problem Description
给定两个正整数,计算这两个数的最小公倍数。
Input
输入包含多组测试数据,每组只有一行,包括两个不大于1000的正整数.
Output
对于每个测试用例,给出这两个数的最小公倍数,每个实例输出一行。
Sample Input
10 14
Sample Output
70
一开始我的做法
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
while(sc.hasNextInt()){
int m=sc.nextInt();
int n=sc.nextInt();
int s=0;
if(m>n){
int temp=n;
n=m;
m=temp;
}
for(int i=m;i<m*n;i++){
if((i%n==0)&&(i%m==0)){
s=i;
break;
}
}
System.out.println(s);
}
}
}
结果显示wrong answer,可答案明明是对的啊。。。个人感觉可能效率低了点,更何况java做ACM的这些题,本来就更花时间,就换了种做法。
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
while(sc.hasNextInt()){
int m=sc.nextInt();
int n=sc.nextInt();
int s=0,m1=0,n1=0;
if(m>n){
int temp=n;
n=m;
m=temp;
}
m1=m;
n1=n;
while(n1!=0){
int temp=n1;
n1=m1%n1;
m1=temp;
}
System.out.println(m*n/m1);
}
}
}
这样就过了,翻看用C来AC这道题的,发现他们的做法思路也是这样,至于上面那种简单的想法为什么不行我就不知道了。。。