用方法来求素数!

发布时间 2024-01-11 13:24:17作者: 浮光跃迁
 1 package excel;
 2 import java.util.Scanner;
 3 public class code12 {
 4     public static void main (String []args){
 5         Scanner sc = new Scanner(System.in );
 6         System.out.print("请输入N:");
 7         int n = sc.nextInt();
 8         int count=0;
 9         System.out.println("1到"+n+"之间的素数有");
10         for (int i =2 ;i<=n;i++){
11 
12             if (isPrime( i)){
13                 System.out.print(i+" ");
14                 count++;
15                 if (count==5){
16                     System.out.println();
17                     count=0;
18                 }
19             }
20 
21         }
22 
23     }
24     public static boolean isPrime(int a){
25         for (int i=2;i<=a/2 ;i++){
26             if (a%i==0){
27                 return false;
28             }
29         }
30 
31     return true;
32 
33   }
34 }

借用方法来素数,

我们先开始来分析这个题目,首先,我们要先清楚什么是素数,在数学里他的解释是只能被1和他本身整除的数不能被其它的数所整除的数。

那我们的思路就有两种:一种是从一开始我们把它一个一个来整除,如果被整除的数只有1和他本身的话那就素数了,那我们就把它输出来。

另一种是我们也是把他们的一个一个来整除,如果在整除的过程中有一个能被他整除的数,那我们就把它打上一个标签,用boolean来把它标志FALSE起来。

后面我就通过for和if语句来吧他们来输出。

具体的过程:我们先确定我们要先求的素数的范围,从键盘获得一个数,确定范围。用Java的Scanner的方法。

接下来我们开始用for循环来表示我们要求哪些数的素数,接下来我就开始来判断我们这些数那些是素数那些不是,

我们开始用方法

 public static boolean isPrime(int a)
创建一个静态的方法
int a是一个形参,用来接主方法的实参
 for (int i=2;i<=a/2 ;i++)
这个形参之所以要除以2是为了减轻代码的运算的效率
if (a%i==0){
27                 return false;
28             }
29         }
30 
31     return true;
如果从主方法中下来的形参于方法中的互相求余,如果等于0,那就说明他不就是素数,那我们返回Boolean的值为FALSE,如果不等于那我们就返回TRUE。
在主方法中我们用if语句来接受布尔值然后打印出来。