3 条题解

  • 0
    @ 2024-12-29 10:54:56
    #include<bits/stdc++.h>
    using namespace std;
    bool IsPrime(int n){
    	for(int i=2;i*i<=n;i++)if(n%i==0)return false;
    	return true;
    }
    signed main(){
    	int n,ans=0;
    	cin>>n;
    	for(int i=2;i<=n;i++)if(IsPrime(i))ans++;
    	cout<<ans;
    }
    
    • 0
      @ 2024-12-29 8:45:05
      #include<bits/stdc++.h>
      using namespace std;
      bool prime(int a)
      {
      	if(a==1)
      	{
      		return 0;
      	}
      	for(int i=2;i*i<=a;i++)
      	{
      		if(a%i==0)
      		{
      			return 0;
      		}
      	}
      	return 1;
      }
      int main()
      {
      	int n;
      	cin>>n;
      	int ans=0;
      	for(int i=2;i<=n;i++)
      	{
      		if(prime(i))
      		{
      			ans++;
      		}
      	}
      	cout<<ans;
      	return 0;
      }
      
      • 0
        @ 2024-12-29 8:42:35

        太神奇了,数据百分百超出限制了,肯定大于一万了。秀一波筛法加前缀和。

        #include<bits/stdc++.h>
        #define int long long
        #define INF 0x3f3f3f
        using namespace std;
        int n,a[150001],f[150001];
        signed main(){
        	for(int i=2;i<=150000;i++)
        		a[i]=1;
        	for(int i=2;i<=150000;i++){
        		if(a[i]){
        			for(int j=2;i*j<=150000;j++)
        				a[i*j]=0;
        		}
        	}
        	for(int i=1;i<=150000;i++)
        		f[i]=f[i-1]+a[i];
        	cin>>n;
        	cout<<f[n];
        	return 0;
        }
        
        • 1

        信息

        ID
        42
        时间
        1000ms
        内存
        128MiB
        难度
        4
        标签
        递交数
        28
        已通过
        18
        上传者