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;标签:Scanner,int,来求,素数,整除,方法,我们 From: https://www.cnblogs.com/jianchiziji/p/17958365
如果从主方法中下来的形参于方法中的互相求余,如果等于0,那就说明他不就是素数,那我们返回Boolean的值为FALSE,如果不等于那我们就返回TRUE。
在主方法中我们用if语句来接受布尔值然后打印出来。