Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当用户输入零或负整数时,将停止生成EMIRP。_Java_Primes - Fatal编程技术网

Java 当用户输入零或负整数时,将停止生成EMIRP。

Java 当用户输入零或负整数时,将停止生成EMIRP。,java,primes,Java,Primes,我使用Java创建了一个程序,该程序通过用户输入生成EMIRP,但我需要帮助在输入零或负整数时停止用户。我尝试过很多方法,但当我用零或负数运行程序时,它会变得疯狂,给我无限多的数字。如果有人能在这方面帮助我,我将不胜感激 这是我到目前为止得到的 import java.util.Scanner; public class GenerateEmirps { public static void main(String[] args) { Scanner scanner =

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

这是我到目前为止得到的

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);
    }
}
import java.util.Scanner;
公共类生成器mirps{
公共静态void main(字符串[]args){
扫描仪=新的扫描仪(System.in);
System.out.print(“输入所需EMIRP的数量:”);
int-emrips=scanner.nextInt();
整数计数=1;
for(int i=2;i++){
如果((isPrime(i))和((isPrime(reverseIt(i))和(!isAlindrome(i))){
系统输出打印(i+“”);
如果(计数%10==0){
System.out.println();
}
如果(计数=emrips){
打破
}
计数++;
}
}
}
公共静态布尔值isPrime(int num){
对于(int i=2;i)解决方案:
您只需要在处理输入之前测试它

int emrips = scanner.nextInt();

if (emrips <= 0) { System.exit(0); }
int-emrips=scanner.nextInt();
如果(emrips