Java 程序:寻找质数

原文:https://www.studytonight.com/java-programs/java-program-to-find-prime-number

如果一个数只能被它自己和一整除,它就叫做质数。这意味着质数只有两个因素一和它本身。

一个数如果有两个以上的因子,就叫做合成数

这里需要注意的一点是,1 既不是素数,也不是合数。

一个数是质数的条件:

  1. 它应该大于 1。

  2. 应该不会超过 2 个因素。

这些是第一批素数:{2,3,5,7,11,....}.

在本教程中,我们将学习如何在 java 中找到素数。但是在继续之前,如果你不熟悉 java 中循环的概念,那么一定要查看关于 Java 中循环的文章

输入:输入数字:34

输出: 34 不是素数。

程序 1:在 Java 中寻找质数

在这个程序中,我们将使用一个从 2 到这个数的平方根的 for 循环来检查输入的数是否是质数。

算法:

  1. 开始

  2. 创建 Scanner 类的实例。

  3. 声明一个变量。

  4. 要求用户初始化变量。

  5. 调用一个方法来检查输入的数字是否是质数。

  6. 如果数字是 0 或 1,打印它不是质数。

  7. 如果数字不是 0 和 1,则运行从 2 到该数字平方根的 for 循环。

  8. 如果这个数可以被那个循环中的任何一个数整除,那么就把它打印成不是质数。

  9. 如果这个数不能被循环中的任何一个数整除,那么就把它打印成质数。

  10. 停下来。

下面是查找质数的 Java 代码。

// Program to find prime number in Java
import java.util.Scanner;
public class Main 
{  
   public static void main(String[] args) 
   {  
       Scanner sc = new Scanner(System.in);  
       System.out.println("Enter a number : ");  
       int num = sc.nextInt();  
       if (checkPrime(num)) {  
           System.out.println(num + " is a prime number");  
       }
       else 
       {  
           System.out.println(num + " is not a prime number");  
       }  
   }  
   public static boolean checkPrime(int num) 
   {  
       if (num <= 1) 
       {  
           return false;  
       }  
       for (int i = 2; i < Math.sqrt(num); i++) 
       {  
           if (num % i == 0) 
           {  
               return false;  
           }  
       }  
       return true;  
   }  
}

输入一个数字:245 245 不是质数

程序 2:在 Java 中寻找质数

在这个程序中,我们将使用从 2 到数字/2 的 for 循环来检查输入的数字是否是质数。

算法:

  1. 开始

  2. 创建 Scanner 类的实例。

  3. 声明一个变量。

  4. 要求用户初始化变量。

  5. 如果数字是 0 或 1,打印它不是质数。

  6. 如果数字不是 0 和 1,则运行从 2 到数字/2 的 for 循环。

  7. 如果这个数可以被那个循环中的任何一个数整除,那么就把它打印成不是质数。

  8. 如果这个数不能被循环中的任何一个数整除,那么就把它打印成质数。

  9. 停下来。

下面是查找质数的 Java 代码。

// Program to find prime number in Java
import java.util.Scanner;
public class Main 
{  
   public static void main(String[] args) 
   {  
       //Take input from the user
       //Create instance of the Scanner class
       Scanner sc = new Scanner(System.in);  
       System.out.println("Enter a number : ");  
       int num = sc.nextInt();  
       int flag=0; 
       int i, temp=num/2;      
       if(num==0||num==1)
       {  
          System.out.println(num+" is not prime number");      
       }
       else
       {  
         for(i=2;i<=temp;i++)
         {      
           if(num%i==0)
           {      
               System.out.println(num+" is not a prime number");      
               flag=1;      
               break;      
           }      
         }      
         if(flag==0)  
         { 
             System.out.println(num+" is a prime number");  
         }  
        }//end of else  
   }   
}

输入数字:29 29 是质数

Java 程序:程序 3:寻找质数

在这个程序中,我们将使用递归来检查一个数是否是质数。

算法:

  1. 开始

  2. 创建 Scanner 类的实例。

  3. 声明一个变量。

  4. 要求用户初始化变量。

  5. 使用递归函数检查数字是否为质数。

  6. 递归调用该函数来检查该数是否可被任何其他数整除。

  7. 如果这个数不能被除 1 和它本身之外的任何其他数整除,那么就把它打印成质数。

  8. 否则打印输入的数字不是质数。

  9. 停下来。

下面是查找质数的 Java 代码。

// Program to find prime number in Java using recursion
import java.util.Scanner;
public class Main 
{  
    static int i=2;
   public static void main(String[] args) 
   {  
       //Take input from the user
       //Create instance of the Scanner class
       Scanner sc = new Scanner(System.in);  
       System.out.println("Enter the number: ");  
       int num = sc.nextInt();  

       if (checkPrime(num)) 
        {  
               System.out.print(num+" is a prime number ");  
        }
        else
        {
            System.out.println(num+" is not a prime number "); 
        }

   }  
    static boolean checkPrime(int num)
    {
       // Corner cases
       if (num == 0 || num == 1) 
       {
          return false;
       }
       // Checking Prime
       if (num == i)
           return true;
        // Base cases
       if (num % i == 0) 
       {
          return false; 

       }
       i++;
       return checkPrime(num);
    }    
}

输入数字:57 57 不是质数