Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.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
为什么1或0仍然是质数? import java.util.Scanner; 公共类Primzahl{ 公共静态void main(字符串[]args){ 布尔值ergebnis=false;//Abfragen ob ergebnis wahr order falsch int i; int n;//Variablen deklarieren Scanner Scanner=新扫描器(System.in);//扫描器aufrufen System.out.println(“bite geben Sie die erste zu untersuchende Zahl ein:\n”); n=scanner.nextInt(); System.out.println(“\nEs wird nunüberprüft,ob die Zahl”+n+“eine Primzahl ist:\n”); 对于(i=2;i1条件_Java - Fatal编程技术网

为什么1或0仍然是质数? import java.util.Scanner; 公共类Primzahl{ 公共静态void main(字符串[]args){ 布尔值ergebnis=false;//Abfragen ob ergebnis wahr order falsch int i; int n;//Variablen deklarieren Scanner Scanner=新扫描器(System.in);//扫描器aufrufen System.out.println(“bite geben Sie die erste zu untersuchende Zahl ein:\n”); n=scanner.nextInt(); System.out.println(“\nEs wird nunüberprüft,ob die Zahl”+n+“eine Primzahl ist:\n”); 对于(i=2;i1条件

为什么1或0仍然是质数? import java.util.Scanner; 公共类Primzahl{ 公共静态void main(字符串[]args){ 布尔值ergebnis=false;//Abfragen ob ergebnis wahr order falsch int i; int n;//Variablen deklarieren Scanner Scanner=新扫描器(System.in);//扫描器aufrufen System.out.println(“bite geben Sie die erste zu untersuchende Zahl ein:\n”); n=scanner.nextInt(); System.out.println(“\nEs wird nunüberprüft,ob die Zahl”+n+“eine Primzahl ist:\n”); 对于(i=2;i1条件,java,Java,我试着写一个代码来检查它是否是素数。但我不明白其中的逻辑 问题:为什么0或1仍然是一个素数,我怎样才能解决这个问题 您的代码只会将一个数字标记为“非素数”,即如果您找到一个等于或大于2的除数,ergebnis=true。显然,0和1都没有这样的除数 因此,只需添加一个额外的检查,检查该数字是否小于2: import java.util.Scanner; public class Primzahl { public static void main(String[] args) {

我试着写一个代码来检查它是否是素数。但我不明白其中的逻辑


问题:为什么0或1仍然是一个素数,我怎样才能解决这个问题

您的代码只会将一个数字标记为“非素数”,即如果您找到一个等于或大于2的除数,
ergebnis=true
。显然,
0
1
都没有这样的除数

因此,只需添加一个额外的检查,检查该数字是否小于2:

import java.util.Scanner;

public class Primzahl {

    public static void main(String[] args) {

        boolean ergebnis = false; // Abfragen ob Ergebnis wahr oder falsch
        int i;
        int n; // Variablen deklarieren
        Scanner scanner = new Scanner(System.in); // Scanner aufrufen

        System.out.println("Bitte geben Sie die erste zu untersuchende Zahl ein: \n");

        n = scanner.nextInt();

        System.out.println(" \nEs wird nun überprüft, ob die Zahl " + n + " eine Primzahl ist: \n");

        for (i = 2; i < n; i++) { // Zählvariable; Bedingung; Schrittweite
            if ((n % i) == 0) // Wenn n mod 2 = 0
            {
                ergebnis = true;

            }
        }

        if (ergebnis == false) {
            System.out.println("Die eingegebene Zahl ist eine Primzahl");
        }

        else {
            System.out.println("Die eingegebene Zahl ist keine Primzahl");
        }

        scanner.close();

    }
}
怎么样

if((n%i)==0) //Wenn n mod 2 = 0 

添加
n>1
条件

然后它将为01负数给出正确的结果

if((n%i)==0) //divisor found -> not a prime
import java.util.Scanner;
公共类Primzahl{
公共静态void main(字符串[]args){
布尔值ergebnis=false;//Abfragen ob ergebnis wahr order falsch
int i;
int n;//Variablen deklarieren
Scanner Scanner=新扫描器(System.in);//扫描器aufrufen
System.out.println(“bite geben Sie die erste zu untersuchende Zahl ein:\n”);
n=scanner.nextInt();
System.out.println(“\nEs wird nunüberprüft,ob die Zahl”+n+“eine Primzahl ist:\n”);
对于(i=2;i1)
{
System.out.println(“Die eingebene Zahl ist eine Primzahl”);
}
其他的
{
System.out.println(“Die eingebene Zahl ist keine Primzahl”);
}
scanner.close();
}}

因为循环从2开始,而数字不算作素数的唯一条件是在循环中找到大于或等于2的除数。再次感谢。我这样做是为了正确理解代码。这只是为了我自己。。你知道它更容易阅读德语而不是java:D
if((n%i)==0) //divisor found -> not a prime
import java.util.Scanner; 
public class Primzahl {

public static void main(String [] args) {

    boolean ergebnis=false; //Abfragen ob Ergebnis wahr oder falsch
    int i;
    int n; //Variablen deklarieren
    Scanner scanner = new Scanner(System.in); //Scanner aufrufen 

    System.out.println("Bitte geben Sie die erste zu untersuchende Zahl ein: \n");

    n=scanner.nextInt();

    System.out.println(" \nEs wird nun überprüft, ob die Zahl " + n + " eine Primzahl ist: \n" );



    for (i=2;i<n;i++){ //Zählvariable; Bedingung; Schrittweite
        if((n%i)==0) //Wenn n mod 2 = 0 
        {
            ergebnis=true; 

        }}

    if (ergebnis==false && n>1)
    {
    System.out.println("Die eingegebene Zahl ist eine Primzahl");
    }

    else 
    {
        System.out.println("Die eingegebene Zahl ist keine Primzahl");
        }

    scanner.close();

}}