hello i took this answer from you and i paid for this and it doesnt work please tell me what to do exactly. import java.util.ArrayList; import java.util.Scanner; public class Main { public static void main(String[] args) { System.out.print("Enter an integer m: "); Scanner input = new Scanner(System.in); int m = input.nextInt(); ArrayList fact = new ArrayList<>(); getFact(m, fact); int smSquare = smSquare(fact); System.out.println("The smallest integer n for m * n to be a perfect square is " + smSquare); System.out.println("m * n = " + (m * smSquare)); } private static int smSquare(ArrayList fact) { int[][] occurrences = copy(fact); for (int i : fact) { search(occurrences, i); } // remove duplicates and get odd sequence factors ArrayList oddSequenceFactors = removeDup(occurrences); // get smallest square by multiplying oddSequenceFactors int smallestSquare = 1; for (int i : oddSequenceFactors) { smallestSquare *= i; } return smallestSquare; } private static ArrayList removeDup(int[][] m) { ArrayList temp = new ArrayList<>(); for (int i = 0; i < m.length; i++) { if (m[i][1] % 2 != 0) { temp.add(m[i][0]); } } // removing duplicates ArrayList dupRemoved = new ArrayList<>(); for (int i = 0; i < temp.size(); i++) { if (!dupRemoved.contains(temp.get(i))) { dupRemoved.add(temp.get(i)); } } return dupRemoved; } private static void search(int[][] m, int number) { for (int i = 0; i < m.length; i++) { if (m[i][0] == number) { m[i][1]++; } } } private static int[][] copy(ArrayList fact) { int[][] temp = new int[fact.size()][2]; for (int i = 0; i < temp.length; i++) { temp[i][0] = fact.get(i); } return temp; } private static void getFact(int m, ArrayList fact) { int count = 2; while (count <= m) { if (m % count == 0) { fact.add(count); m /= count; } else { count++; } } } }
hello i took this answer from you and i paid for this and it doesnt work please tell me what to do exactly.
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
System.out.print("Enter an integer m: ");
Scanner input = new Scanner(System.in);
int m = input.nextInt();
ArrayList<Integer> fact = new ArrayList<>();
getFact(m, fact);
int smSquare = smSquare(fact);
System.out.println("The smallest integer n for m * n to be a perfect square is " + smSquare);
System.out.println("m * n = " + (m * smSquare));
}
private static int smSquare(ArrayList<Integer> fact) {
int[][] occurrences = copy(fact);
for (int i : fact) {
search(occurrences, i);
}
// remove duplicates and get odd sequence factors
ArrayList<Integer> oddSequenceFactors = removeDup(occurrences);
// get smallest square by multiplying oddSequenceFactors
int smallestSquare = 1;
for (int i : oddSequenceFactors) {
smallestSquare *= i;
}
return smallestSquare;
}
private static ArrayList<Integer> removeDup(int[][] m) {
ArrayList<Integer> temp = new ArrayList<>();
for (int i = 0; i < m.length; i++) {
if (m[i][1] % 2 != 0) {
temp.add(m[i][0]);
}
}
// removing duplicates
ArrayList<Integer> dupRemoved = new ArrayList<>();
for (int i = 0; i < temp.size(); i++) {
if (!dupRemoved.contains(temp.get(i))) {
dupRemoved.add(temp.get(i));
}
}
return dupRemoved;
}
private static void search(int[][] m, int number) {
for (int i = 0; i < m.length; i++) {
if (m[i][0] == number) {
m[i][1]++;
}
}
}
private static int[][] copy(ArrayList<Integer> fact) {
int[][] temp = new int[fact.size()][2];
for (int i = 0; i < temp.length; i++) {
temp[i][0] = fact.get(i);
}
return temp;
}
private static void getFact(int m, ArrayList<Integer> fact) {
int count = 2;
while (count <= m) {
if (m % count == 0) {
fact.add(count);
m /= count;
} else {
count++;
}
}
}
}
Step by step
Solved in 4 steps with 5 images