7 solutions

  • 4
    @ 2023-10-4 8:41:17
    #include<bits/stdc++.h>
    using namespace std;
    long n;
    long s=0;//计数变量 
    bool ss(long x){
    	for(int i=2;i<=x/2;i++){//i从2开始不然会全true 
    		if(x%i==0) return false;
    	}
    	return true;
    }//判断素数函数 
    int main(){
    	cin>>n;
    	for(int i=2;i<=n;i++) if(ss(i)) s++;
    	cout<<s;
    	return 0;
    }//说实话真可以不用函数 
    
    • 2
      @ 2023-9-29 12:18:38

      `

      #include<cstdio>
      using namespace std;
      int n,pri[50005]={},cnt=0;
      int main(){
      	scanf("%d",&n);//输入
      	for(int i=2;i<=n;i++){//埃氏筛法
      		if(pri[i])continue;
      		for(int j=i+i;j<=n;j+=i)pri[j]=1;//质数的几倍是合数
      	}
      	for(int i=2;i<=n;i++)if(!pri[i])cnt++;//统计质数
      	printf("%d",cnt);//输出
      	return 0;
      }
      
      • 1
        @ 2023-12-23 19:03:41
        #include<bits/stdc++.h>
        using namespace std;
        long n,s=0;//n和计数器
        bool ss(long x){
        	for(int i=2;i<=x/2;i++) if(x%i==0) return false;
        	return true;
        }//质数判断
        int main(){
        	cin>>n;
        	for(int i=2;i<=n;i++) if(ss(i)) s++;
        	cout<<s;
        	return 0;
        }
        
        • 1
          @ 2023-10-10 18:55:04
          #include <bits/stdc++.h>
          using namespace std;
          int cnt;
          bool su(int n);
          int main(int argc, char **argv){
          	int n;
          	cin >> n;
          	for (int i = 2;i <= n;i++){
          		if (su(i)){
          			cnt++;
          		}
          	}
          	cout << cnt;
          	return 0;
          }
          bool su(int n){
          	for (int i = 2;i < n;i++){
          		if (n % i == 0){
          			return false;
          		}
          	}
          	return true;
          }
          

          dstyg

          • 0
            @ 2024-10-15 19:20:25
            #include<bits/stdc++.h>
            using namespace std;
            bool sushu(int n){//判断n是否为质数
                if(n<2) return false;//如果n<2 返回假
                for(int i=2;i<=sqrt(n);i++){
                    if(n%i==0) return false;//如果n%i余数是0,说明n不是质数,返回假
                }
                return true;//排除前两项,说明它是质数,返回真
            }
            int main(){
                int n;
                cin>>n;
                int sum=0;
                for(int i=2;i<=n;i++)
                if(sushu(i))
                sum++;
                cout<<sum;
                return 0;
            }
            
            • @ 2024-10-15 19:21:08
              ```cpp
              #include<bits/stdc++.h>
              using namespace std;
              bool sushu(int n){//判断n是否为质数
                  if(n<2) return false;//如果n<2 返回假
                  for(int i=2;i<=sqrt(n);i++){
                      if(n%i==0) return false;//如果n%i余数是0,说明n不是质数,返回假
                  }
                  return true;//排除前两项,说明它是质数,返回真
              }
              int main(){
                  int n;
                  cin>>n;
                  int sum=0;
                  for(int i=2;i<=n;i++)
                  if(sushu(i))//如果是素数
                  sum++;//就累加
                  cout<<sum;
                  return 0;
              }
              
          • 0
            @ 2024-10-1 14:28:28
            #include<bits/stdc++.h>
            using namespace std;
            long long n, num=0;
            bool sushu(long long x)
            {
            	for(int i=2;i<=x/2;i++)
            	{
            		if(x%i==0)//能被除本身和1整除的数不是素数 
            		{
            			return false;
            		}
            	}
            	return true;
            }
            int main(){
            	cin>>n;
            	for(int i=2;i<=n;i++)
            	{
            		if(sushu(i)==true)//判断 
            		{
            			num++;
            		}
            	}
            	cout<<num;//输出 
            	return 0;
            }
            //双重循环不是最优解 
            
            • 0
              @ 2023-10-17 19:34:48

              乱打的

              using namespace std;
              string a;
              int aaa(int n){
              	int sum=0;
              	for(int i=2;i<n;i++)
              		if(n%i==0) return 0;
              	return 1;
              }
              int main(){
              	int n,ans=0;
              	cin>>n;
              	for(int i=2;i<=n;i++)
              		if(aaa(i)==1) ans++;
              	cout<<ans;
              	return 0;
              }
              
              • 1

              Information

              ID
              637
              Time
              1000ms
              Memory
              256MiB
              Difficulty
              3
              Tags
              # Submissions
              104
              Accepted
              53
              Uploaded By