0
已解决
徐润扬
高级守护
高级守护
#include<iostream>
#include<cmath>
using namespace std;
int a[1000010];
int main()
{
int n,maxn=0;
cin>>n;
for(int i=2;i<=n;i++)
{
int cnt=0;
if(a[i]==0)
{
for(int j=i*2;j<=n;j+=i)
{
cnt++;
}
}
if(cnt==4)
maxn++;
}
cout<<maxn-1<<endl;
return 0;
}
埃式筛
为什么0分!
徐润扬在2020-03-21 20:29:12追加了内容
在线等,求大佬们回答
1
已采纳
包涵宇
中级天翼
中级天翼
你好!!!
你的思路好像有问题。。。
埃氏筛是先要全部求出来!
所以:
for(int i=2;i<=n;i++)
{
int cnt=0;
if(a[i]==0)
{
for(int j=i*2;j<=n;j+=i)
{
cnt++;
}
}
if(cnt==4)
maxn++;
}
cout<<maxn-1<<endl;
应该为:
for(long long i=2;i<=n;i++)
if(b[i]==0)
for(long long j=i*2;j<=n;j+=i)
b[j]++;
for(long long i=2;i<=n;i++)
if(b[i]==4)
maxn++;
cout<<maxn;
AC!!!
1
0
0
赵朗
高级光能
高级光能
0