Что я могу использовать, чтобы определить, является ли число простым или нет без использования логического значения?
Наш профессор дал нам кучу проблем для программирования. Я почти закончил, пока не прочитал, что в моем последнем назначении на программу мы не можем использовать Boolean и "for". Что я могу использовать помимо "for" и "Boolean", чтобы определить, является ли число простым или нет? Я надеюсь, что кто-то заметит это. Помоги мне, пожалуйста. Заранее спасибо.
4 ответа
Способ решить это без for
это с помощью рекурсии. Если использование условных выражений не считается логическим использованием, я думаю, что это ответ на упражнение:
public String verify(int num) {
if (num <= 1) {
return IS_NOT_PRIME;
}
if (num )
return isPrime(num, num);
}
}
public String isPrime(int i, int num) {
if (i == 1) {
return IS_PRIME;
}
if (num % i == 0 && i != num) {
return IS_NOT_PRIME;
}
return isPrime(i-1, num);
}
редактирование: исправление английских букв и отрицательных чисел. Указано Томми.
Вы можете использовать цикл while вместо цикла for, например так:
public class Prime{
static int i = 2;
public static String prime(int n){
if(n <= 0){
return("Please enter a number greater than 0");
}
while(i < n){
if(n % i == 0){
return(n + " is not prime");
}
i++;
}
return (n + " is prime");
}
}
Всякий раз, когда вам нужно проверить любую возможность, ответ всегда в форме boolean
,
Если он очень конкретно о возвращении data type
Не существует boolean
тогда вы можете вернуться int
(1 или 0).
Альтернативы for loop
являются while
, do-while
или же recursion
,
Альтернативой iterative
структуры recursion
,
Вот программа проверки простого числа без использования логического и для цикла:
public class PrimeNumber {
public static void main(String args[]) {
PrimeNumber primeNumber = new PrimeNumber();
int i = 2;
int num = 3;
if (num <= 1) {
System.out.println(num + " is not a prime number");
System.exit(1);
}
while(i <= Math.sqrt(num)) {
if (num % i == 0) {
System.out.println(num + " is not a prime number");
System.exit(1);
}
i++;
}
System.out.println(num + " is a prime number");
} }