题目
Description
求出1-N中的所有素数
Input
大于1的正整数N
Output
1-N中的所有素数,(以从小到大的格式输出)
Sample Input
9
Sample Output
2 3 5 7
代码块
//输入包
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);//输入流
int N = cin.nextInt();
for (int i = 1; i <= N; i++)
if (prime(i))//对数进行判断是不是素数
System.out.print(i + " ");//输出格式中注意每输出一个数的后面都有一个空格
System.out.println();
cin.close();
}
//素数的函数
private static boolean prime(int i) {
if (i == 2)//如果是2,就是素数
return true;
if (i < 2 || i % 2 == 0)//0,1不是素数,以及2的倍数的所有数都不是素数
return false;
int m = (int) Math.sqrt(i);//判断一个数是否有因子,只要判断到,这个数的平方根即可
for (int k = 3; k <= m; k += 2)//因为0,1,2,以及2的倍数的数都被判断过了,所以只要判断3~m,中有没有这个数的因子即可
if (i % k == 0)
return false;
return true;
}
}