当用户输入零或负整数时,生成emirps会停止。

时间:2014-10-15 04:07:03

标签: java primes

我创建了一个使用Java的程序,它通过用户输入生成emirps,但是在输入零或负整数时我需要帮助停止用户。我尝试了很多东西但是当我运行零或负数的程序时,它会变得疯狂并给我无限的数字。如果有人能帮助我,我将不胜感激。

这是我到目前为止所得到的......

import java.util.Scanner;
public class GenerateEmirps {

    public static void main(String[] args) {
        Scanner scanner = new Scanner (System.in);
        System.out.print("Enter number of desired emirps: ");

        int emrips = scanner.nextInt();
        int count = 1;

        for( int i = 2; ; i++){
            if ((isPrime(i)) && (isPrime(reverseIt(i))) && (!isPalindrome(i))) {
                System.out.print(i + "       ");

                if (count % 10 == 0) {
                    System.out.println();
                }

                if (count == emrips){
                    break;
                }
                count++;
            }
        }
    }

    public static boolean isPrime(int num){
        for (int i = 2; i <=num / 2; i++){
            if (num % i == 0) {
                return false;
            }
        }
        return true;
    }

    public static int reverseIt(int num){
        int result = 0;

        while (num != 0) {
            int lastDigit = num % 10;
            result = result * 10 + lastDigit;
            num /= 10;
    }
        return result;
        }
        public static boolean isPalindrome(int num){
        return num == reverseIt(num);
    }
}

1 个答案:

答案 0 :(得分:1)

解决方案:

您只需在处理输入之前测试输入。

int emrips = scanner.nextInt();

if (emrips <= 0) { System.exit(0); }