HDU 2136 Largest prime factor

时间:2023-03-08 17:54:29
HDU 2136 Largest prime factor

题目大意:求出比给出数小的互质的质数个数。

题解:直接用筛法求素数,稍微改编一下,将原先的布尔数组变为数组用来记录信息就可以了。

注意点:大的数组定义要放在程序的开头,不要放在main里面,不然会栈溢出。

#include <cstdio>
#define max 1000000
int prim[max]={};
int main()
{
int n;
int cnt=;
for(int i=; i<max; ++i)
{
if(prim[i]) continue;
for(int j=i; j<max; j+=i)
prim[j]=cnt;
cnt++;
}
while(scanf("%d",&n)!=EOF) printf("%d\n",prim[n]);
return ;
}