繁体   English   中英

如何在 Java 中找到质数?

[英]How to Find Prime Number in Java?

你好
我有 java 项目,用户需要输入 int = number 并找到素数。

问题:当我输入 10 时没有打印任何东西。

public class Prime_Numbers {
    
    public static void main(String[] args)
    {
        // Scanner
        Scanner scan = new Scanner(System.in);
        
        // Variables
        int num = 10, i = 2;
        
        // Ask User For Input
        System.out.println("Please Enter Number: ");
        num = scan.nextInt();
        
        while(i <= num/2)
        {
            if(num % i == 2) 
            {
                System.out.println(num);
                break;  
            }
        }
    }
}

如果您查看 while 循环中的 if 语句,则不会执行任何内容。 原因是 if 语句的条件:(num % i == 2)。 由于 10%2 不等于 2,因此不会打印任何内容。 相反,它等于 0。如果您要检查 num 是否为偶数,则将 num % i == 2 更改为 num % i == 0。

你可以试试这段代码:

import java.util.Scanner;
public class PrimeNumberExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter number : ");
        int number = scanner.nextInt();
        boolean flag = false;
        
        for(int count=2; count<number; count++) {
            if(number%count == 0) {
                flag = true;
                break;
            }
        }
        
        if(!flag) {
            System.out.println(number + " is Prime");
        } else {
            System.out.println(number + " is Not Prime");   
        }   
    }
}

也许你可以尝试找到素数代码

public class PrimeExample{
     public static void main(String args[]){
          int i,m=0,flag=0;
          int n=5;//it is the number to be checked
          m=n/2;
          if(n==0||n==1){
                System.out.println(n+" is not prime number");
          }else{
           for(i=2;i<=m;i++){
                if(n%i==0){
                    System.out.println(n+" is not prime number");
                    flag=1;
                    break;
                }
           }
           if(flag==0)  {
                System.out.println(n+" is prime number");
            }
      }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM