2021.7.13
大佬说这是一道水题(然而我不会)
#include<stdio.h>
#include<string.h>
#define N 1000005
int a[N];
int main()
{
int n,ans,i,j;
memset(a,0,sizeof(a));//不知道为什么自己看的有些代码没清零也可以做
ans=0;
for(i=2;i<N;i++)
{
if(!a[i])//判断是否被标记
{
ans++;
for(j=i;j<N;j+=i)//素数的倍数都被标记
{
a[j]=ans;//标记为该素数的编号
}
}
}
while(scanf("%d",&n)!=EOF)
{
printf("%d\n",a[n]);
}
}
我菜起来了