题目:时间限制:每个测试用例 2 秒, 空间限制:内存 384 M
输入为一个正整数, 不大于 100000
请给出小于这个数字的素数有多少个.
思路:先判断是否为素数(大于1的自然数,只能被自身和1整除)将给出的数循环除以小于它的数看模是否为0(先把数的开方求出来就可以减少比较次数)
代码:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
int count = 0;
for (int i=2;i<a;i++){
if(getPrime(i)){
count++;
}
}
System.out.println(count);
}
static boolean getPrime(int num){
for(int i=2;i<=Math.sqrt(num);i++){
if(num%i == 0) {
return false;
}
}
return true;
}
网友评论