Я пытался создать программу на Java для поиска LCM из «N» чисел. но прежде всего я застрял в поиске общих простых множителей числа, включая их вхождения. Например, (6=2x3) и (8=2x2x2). но на выходе я получаю «2» для (6) и только две «2» для (8). Где другие? Я даже проверяю, что целое число s простое.
package lcm;
import java.util.ArrayList;
import java.util.Scanner;
public class LCM {
public static boolean isPrime(int numero){
for (int i = 2; i <= Math.sqrt(numero); i++) {
if (numero % i == 0) {
return false;
}
}
return true;
}
public static void factor(int x){
int s;
int copy = x;
ArrayList<Integer> al = new ArrayList<>();
for(s=2;s<copy;s++){
if(copy%s==0){
if (isPrime(s)){
al.add(s);
copy/=s;
//used for repetition
s--;
}
}
}
for( int p : al){
System.out.println(p);
}
}
public static void main(String[] args) {
// TODO code application logic here
int j,k;
int temp=0;
System.out.println("Enter no. of numbers");
Scanner cin = new Scanner(System.in);
int i = cin.nextInt();
int []a = new int[i];
int []b=new int[100];
System.out.println("Enter numbers one by one");
for(j=0;j<a.length;j++){
a[j] = cin.nextInt();
}
for(j=0;j<a.length;j++){
temp=a[j];
factor(temp);
}
}
}
LCM(a,b) = |a.b| / GCD(a,b)
... и вычислить НОД с помощью алгоритма Евклида. - person Stephen C   schedule 15.08.2015