算法刷题记录:素数分布
题目链接
https://ac.nowcoder.com/acm/contest/19306/1014
解题思路
第一次听说素数分布这个东西,所以想记下来。
素数分布函数π(n)表示小于或等于n的素数的数目。例如π(10)=4(2,3,5,7是素数)。
AC代码
#include <iostream>
#include <cstring>
using namespace std;
const int N = 10000;
int T, n;
int p[N], st[N];
int main()
{
cin >> T;
while (T -- )
{
cin >> n;
int cnt = 0, ans = 0;
memset(st, 0, sizeof st);
for (int i = 2; i <= n; ++ i)
{
if (!st[i])
{
p[cnt ++ ] = i;
for (int j = i + i; j <= n; j += i)
st[j] = true;
}
}
for (int i = 2; i <= n; ++ i)
if (!st[i]) ++ ans;
cout << ans << endl;
}
return 0;
}
本文来自博客园,作者:想个昵称好难ABCD,转载请注明原文链接:https://www.cnblogs.com/ClockParadox43/p/17425588.html