7 条题解

  • 2
    @ 2024-7-15 23:41:02

    可以提前学一下素数筛。 头文件以及核心代码展示↓

    //c++版
    #include <bits/stdc++.h>//万能头(字面意思)
    //using namespace std;
    //bitset是一个优化,感兴趣可以查一查
    std::bitset<100000000> box;//存放结果
    
    //c版
    #include <stdio.h>
    #include <stdbool.h>
    bool box[10000];//存放结果
    
    void su()
    {
    box[0]=1;box[1]=1;
    for(int i=2;i<10000/*筛选范围*/;++i)
    {
    if(!box[i])
    {
    for(int j=i*2;j<10000/*筛选范围*/;j+=i)
    {
    box[j]=1;
    }
    }
    }
    }
    //最后数值为零(false)的就是素数
    
    • 0
      @ 2025-12-12 21:32:40

      #include<stdio.h> #include<math.h> int p(int num){ if(num<=1){ return 0; } if(num2){ return 1; } if(num%20){ return 0; } for(int i=3;i<=sqrt(num);i+=2){ if(num%i==0){ return 0; } } return 1; }

      int main(){ int m; scanf("%d",&m); while(m--){ int n,sum=0; scanf("%d",&n); int a[n]; for(int i=0;i<n;i++){ scanf("%d",&a[i]); if(p(a[i])){ sum=sum+a[i]; } } printf("%d\n",sum); } return 0; }

      • 0
        @ 2025-10-3 12:03:30
        #include<stdio.h>
        int main()
        {
            int m;
            scanf("%d",&m);
            for(int i=0;i<m;i++)
            {
                int sum;
                int n;
                scanf("%d",&n);
                int a[n];
                for(int i=0;i<n;i++)
                {
                    scanf("%d",&a[i]);
                }
        sum=0;
                for(int i=0;i<n;i++)
                { 
                    for(int j=2;j*j<=a[i];j++)
                    {
                        if(a[i]%j==0)
                        {
                            a[i]=0;
                        }
                        
                    }
                    if(a[i]==1)
                    {
                    	a[i]=0;
        			}
                      sum=sum+a[i];
                }
                printf("%d\n",sum);
            }
            return 0;
        }
        
        • 0
          @ 2025-9-12 11:00:49

          #include <stdio.h> int isprime(int num) { if (num <= 1) { return 0; } for (int i = 2; i * i <= num; i++) { if (num % i == 0) { return 0; } } return 1; } int main() { int M; scanf("%d", &M); for (int i = 0; i < M; i++) { int N; scanf("%d", &N); int sum = 0; for (int j = 0; j < N; j++) { int num; scanf("%d", &num); if (isprime(num)) { sum += num; } } printf("%d\n", sum); } return 0; }

          • 0
            @ 2024-10-19 8:55:24

            #include<stdio.h>

            #include <stdio.h>

            int isPrime(int num) { if (num < 2) { return 0; }

            for (int i = 2; i * i <= num; i++) { if (num % i == 0) { return 0; } } return 1; }

            int main() { int N,n,a,sum=0; scanf("%d",&N); while(N--) { scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%d",&a); if(isPrime(a)) { sum+=a; } } printf("%d\n",sum); sum=0; } return 0;

            }

            • 0
              @ 2023-9-20 23:51:06
              #include<stdio.h>
              #include<math.h>
              int main()
              {
              int a,q,n,m;
              scanf("%d",&a);
              for(int w=0;w<a;w++)
              {
              scanf("%d",&q);
              int sum=0;
              for(int d=0;d<q;d++)
              	{
              	scanf("%d",&n);
              
              	int c=0;
              	m=sqrt(n);
              
              	for(int i=2;i<=m;i++)
              	{
                  if(n%i==0)
                  c=1;
                  }
                  if(c==0)
              	sum+=n;
              	if(n==1)
              	sum--;
              
              
              	}
              	printf("%d\n",sum);
              }
              }
              
              • 0
                @ 2023-8-15 17:31:14
                #include<stdio.h>
                #include <math.h>
                int main()
                {
                int m,n,i,j,a[1000],flag=0;
                long s;
                scanf("%d",&m);
                while(m--)
                {
                s=0;
                scanf("%d",&n);
                for(i=0;i<n;i++)
                scanf("%d",&a[i]);
                for(i=0;i<n;i++)
                {
                if(a[i]==1)	continue;
                flag=0;
                for(j=2;j<=sqrt(a[i]);j++)
                {
                if(a[i]%j==0)
                {flag=1;break;}
                }
                if(flag==0)	s+=a[i];
                }
                printf("%d\n",s);
                }
                return 0;
                }
                
                • 1

                信息

                ID
                61
                时间
                1000ms
                内存
                128MiB
                难度
                6
                标签
                (无)
                递交数
                2078
                已通过
                560
                上传者