求素数
求素数练习,考查算法设计与优化。输入一个整数,输出小于等于这个整数的所有素数及数量。 注意:本题目为加分题,总分30分,得分计算方式如下:
- (所有得到满分的同学程序所用时长的平均值-你的程序运行所用时长)/所有答案所用时长最小值*30分,为负值者不得分。
输入格式:
整型数,取值范围为大于2的整数。
输出格式:
- 输出素数的个数,格式为
Prime num[数量]
输入样例1:
在这里给出一组输入。例如:
10
输出样例1:
在这里给出相应的输出。例如:
Prime num[4]
输入样例2:
在这里给出一组输入。例如:
100
输出样例2:
在这里给出相应的输出。例如:
Prime num[25]
代码如下,造福人类,请关注!!!
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int[] primes = new int[n + 1];
boolean[] isNotPrime = new boolean[n + 1];
int count = 0;
for(int i = 2; i <= n; i++) {
if(!isNotPrime[i]) {
primes[count++] = i;
}
for(int j = 0; j < count; j++) {
if(i * primes[j] > n) {
break;
}
isNotPrime[i * primes[j]] = true;
if(i % primes[j] == 0) {
break;
}
}
}
System.out.printf("Prime num[%d]",count);
}
}