问题标题: 酷町堂:3870

0
0
已解决
胡钰妍
胡钰妍
资深光能
资深光能
  • #include<iostream>
  • #include<cmath>
  • using namespace std;
  • long long a[10000001];
  • int main()
  • {
  • int n,cnt=0;
  • cin>>n;
  • for(int i=2;i<=sqrt(n);i++)
  • {
  • if(a[i]==0){
  • for(int j=i*i;j<=n;j+=i){
  • a[j]=1;
  • }
  • }
  • }
  • for(int i=2;i<=n;i++)
  • {
  • if(a[i]==0)cnt++;
  •  
  • }
  • cout<<cnt;
  • return 0;

 

哪错了

2天内采纳者加12豆


0
已采纳
荣逸乐
荣逸乐
资深守护
资深守护

把long long a[10000001];改为int型

再把for(int j=i*i;j<=n;j+=i)改为从i*2开始

0
曹博扬
曹博扬
初级天翼
初级天翼

等等我……

曹博扬在2020-09-23 20:30:50追加了内容

把i*i改成i*2

 

我要回答