列表

详情


NC220829. 素数个数

描述

对于正整数 n, 求 n 以内的(包括 n)素数个数。

输入描述

输入第一行为一个正整数 t, 表示一共有 t 组数据,
接下来 t 行,每行一个正整数 n。

输出描述

输出 t 行,每行一个整数表示 n 以内的素数个数。

示例1

输入:

4
5
10
20
100

输出:

3
4
8
25

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

Java 解法, 执行用时: 1206ms, 内存消耗: 13548K, 提交时间: 2023-03-21 20:05:20

import java.util.Scanner;
public class Main {
public static void main(String[] args) {
	Scanner sc=new Scanner(System.in);
	int t=sc.nextInt();
	while(t-->0){
		int n=sc.nextInt();
		int cnt=0;
		for(int i=2;i<=n;i++)
		{int e=0;
		for(int j=2;j<i;j++) {
			if(i%j==0)e=1;
		}
		if(e==0)cnt++;
	}System.out.println(cnt);
}
}
}

pypy3 解法, 执行用时: 128ms, 内存消耗: 29068K, 提交时间: 2023-07-10 23:32:01

from bisect import bisect
from cmath import sqrt

all = []

for i in range(2, 1000):
    flag = True
    j = 2
    while j * j <= i:
        if i % j == 0:
            flag = False
            break
        j += 1
    if flag:
        all.append(i)

for _ in range(int(input())):
    n = int(input())
    print(bisect(all, n))

C(clang11) 解法, 执行用时: 11ms, 内存消耗: 376K, 提交时间: 2021-04-10 14:31:41

#include<stdio.h>
int isPrime(int x)
{
//    if(x==1)return 0;
    for(int i=2;i*i<=x;i++)
        if(x%i==0) return 0;
    return 1;
}
int main(){
int t,x,sum;
scanf("%d",&t);
while(t--)
{
    sum=0;
    scanf("%d",&x);
    for(int i=2;i<=x;i++)
        if(isPrime(i)) sum++;
        printf("%d\n",sum);
}

return 0;
}



Python3(3.9) 解法, 执行用时: 56ms, 内存消耗: 6836K, 提交时间: 2021-04-10 14:21:15

def isPrime(x):
    if x<=1 :
        return 0
    i=2
    while i*i<=x:
        if x%i==0:
            return 0
        i+=1
    return 1

isprime=[isPrime(i) for i in range(1010)]
t=int(input())
for i in range(t):
    n=int(input())
    print(sum(isprime[1:n+1]))

C++(clang++ 11.0.1) 解法, 执行用时: 91ms, 内存消耗: 432K, 提交时间: 2023-08-10 10:52:49

#include <iostream>
using namespace std;
int main() {
	int t;
	cin>>t;
	while(t--) {
		int i,j,n,count=0;
		cin>>n;
		for(j=2; j<=n; j++) {
			for(i=2; i<j; i++) {
				if(j%i==0) break;
			}
			if (j==i) {
				count++;
			}
		}
		cout<<count<<endl;
	}
	return 0;
}

上一题