一、筛选N以内的素数
1.题目描述
用简单素数筛选法求N以内的素数。
时间限制:C语言 1s,C++ 1s,其它语言3s
内存限制:C语言 128MB,C++ 128MB,其它语言 192MB
2.输入格式
N
3.输出格式
2~N的素数
4.样例输入
100
5.样例输出
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
二、思路
利用两个循环,由于2一定是素数,把2存放在数组里,所以第一个循环让i遍历3到N的数,寻找满足素数条件的数;第二个循环从2开始遍历到第一个循环i(不包括本身i,即i-1),如果满足素数条件,赋值给数组,若不满足跳出循环。
三、代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int N = scanner.nextInt();
int k = 0;
int [] array = new int[1000];
array[0] = 2;
for(int i=3;i<=N;i++)
{
for(int j=2;j<i;j++)
{
if(i%j==0) break;
else if((i-1)==j)
{
k+=1;
array[k]=i;
}
}
}
for(int i=0;i<=k;i++)
System.out.println(array[i]);
}
}
欢迎大家批评指正!!!