或者是这样?
#include<bits/stdc++/h>
#define MAXN 100000000
bool a[MAXN+100];
int main(){
memset(a, 1, sizeof(a));//1代表是素数
int n,i,j,s=0;
scanf("%d",&n);
s=n-1;//把一给去掉
for(i=2;i*i<=n;i++){
if(a[i]==1) {
for(j=i*2;j<=n;j+=i) {
if(a[j]==1){
a[j]=0;
s--;
}
}
}
}
printf("%d",s);
return 0;
}
by 粤若稽古 @ 2019-02-27 20:33:23
@[Bambusoideae](/space/show?uid=106140)
谢谢各位大佬!
我现在算是“初步”“能用”Markdown了……
(和大佬们的水平当然无法相提并论了~~)
来日方长,我还要不断学习和进步呀!
by 粤若稽古 @ 2019-02-27 20:37:45
或者是这样?
```
#include<bits/stdc++/h>
bool a[100000100];
int main(){
memset(a, 1, sizeof(a));//1代表是素数
int n,i,j,s=0;
scanf("%d",&n);
s=n-1;//把一给去掉
for(i=2;i*i<=n;i++)
if(a[i]==1)
for(j=i*2;j<=n;j+=i)
if(a[j]==1)
a[j]=0,s--;
printf("%d",s);
return 0;
}
```
by _Luminous @ 2020-04-02 17:38:24