Что я могу использовать, чтобы определить, является ли число простым или нет без использования логического значения?

Наш профессор дал нам кучу проблем для программирования. Я почти закончил, пока не прочитал, что в моем последнем назначении на программу мы не можем использовать 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");      
 }  }
Другие вопросы по тегам