如果不使用布尔值,我可以使用什么来确定数字是Prime还是Not?

时间:2017-07-16 05:01:34

标签: java primes

我们的教授为我们提供了一系列问题。我几乎完成了,直到我读到我的最后一个程序,我们不能使用布尔和“for”。除了“for”和“Boolean”之外我还可以使用什么来确定数字是Prime还是Not?我希望有人会注意到这一点。请帮帮我。提前谢谢。

4 个答案:

答案 0 :(得分:2)

在没有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); } 的情况下解决它的方法是使用递归。如果条件的使用不算作布尔使用,我认为这是练习的答案:

Company Date        Country
ABC     2017-09-17   USA
BCD     2017-09-16   USA
ABC     2017-09-17   USA
BCD     2017-09-16   USA
BCD     2017-09-16   USA
ABC     2017-09-19   USA

编辑:英文,lint和负数修复。汤米指出。

答案 1 :(得分:1)

您可以使用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");
    }
}

答案 2 :(得分:0)

每当您必须检查任何可能性时,响应始终采用boolean的形式。

如果他对返回data type不是boolean非常具体,那么您可以返回int(1或0)。

for loop的替代方案是whiledo-whilerecursion

iterative结构的替代方案是recursion

答案 3 :(得分:0)

这是在不使用布尔值和for循环的情况下检查素数的程序:

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");      
 }  }