У меня была задача сделать Ulam Spiral на Java, но перед тем, как создать Ulam Spiral, пользователь должен ввести 2 числа.Эти 2 числа должны быть проверены, чтобы они не были простыми числами.Поскольку одно из записанных чисел является простым числом, программа должна перезапуститься и запросить 2 новых числа.
Метод getInput запрашивает у пользователя 2 числа.После того, как эти числа записаны, должен вызываться метод isPrime и проверяться по одному номеру за раз, если это простое число.Если первое проверенное число не является простым, то следует проверить второе число, если это также не простое число, то должен быть вызван следующий метод.Что я не понимаю, так это метод isPrime, который у меня есть.Он проверяет число, но как мне сделать так, чтобы, если первое не было простым числом, то проверялось следующее число, и пока ни одно из них не является простым, то у нас все хорошо.Я мог бы сделать так, чтобы метод isPrime брал оба числа, и они проверены, но мне не разрешили это делать, я должен проверять одно число за раз.
Здесь вы видите мои методы getInput и isPrime.И да, я знаю, что isPrime (firstNumber);IsPrime (secondsNumber);по моему основной метод странный и не должно быть так, не так ли?это лучший способ?
public class UlamSpiral {
private static int firstNumber, secondNumber;
private static Scanner scanner = new Scanner(System.in);
private static boolean flag = false;
public static void main(String[] args) {
getInput();
isPrime(firstNumber);
isPrime(secondsNumber);
}
public static void getInput() {
System.out.println("Enter two non-prime numbers");
firstNumber = scanner.nextInt();
secondNumber = scanner.nextInt();
}
public static boolean isPrime(int num) {
for(int i = 2; i <= num / 2; ++i) {
// Condition for non-prime number.
if(num % i == 0) {
flag = true;
break;
}
}
if (!flag)
System.out.println(num + " Atleast one of the numbers are a prime number.");
return true;
}
РЕДАКТИРОВАТЬ: 1.
Это то, что у меня сейчас, но это не будет работать правильно.
Когда программа запускаетсяи я пишу в 2 простых числах, таких как 3, 5, затем он говорит мне, что одно из чисел простое и перезапустить программу.
Время в секундах, если я пишу в 3, 4, то программа продолжается, даже если 3 являетсяпростое число.
public static void main(String[] args) {
getInput();
if(isPrime(firstNumber) || isPrime(secondNumber)){
System.out.println("Atleast one of the numbers are a prime number.");
getInput();
} else {
isMax(firstNumber, secondNumber);
}
public static void getInput() {
System.out.println("Enter two non-prime numbers");
firstNumber = scanner.nextInt();
secondNumber = scanner.nextInt();
}
public static boolean isPrime(int num) {
boolean flag = true;
for (int i = 2; i <= num / 2; ++i) {
// Condition for non-prime number.
if (num % i == 0) {
flag = false;
break;
}
}
return flag;
}
Вывод:
Введите два не простых числа 3 5 По крайней мере одно из чисел является простым числом.Введите два не простых числа 3 4
Процесс завершен с кодом выхода 0