素数求和问题

来源:互联网 发布:智能电视点播软件 编辑:程序博客网 时间:2024/05/16 16:12

描述
现在给你N个数(0 < N < 1000),现在要求你写出一个程序,找出这N个数中的所有素数,并求和。
输入
第一行给出整数M(0

#include <iostream>#include <cmath>using namespace std;int main(){    int i,n,m,num,prime = 0,sum = 0;    cin >> n;    while(n--)    {        cin >> m;        while(m--)        {            cin>>num;            if(num == 1) prime = 1;            for(i = 2 ; i <= sqrt(num);i++)            {                if(num % i == 0) prime = 1;            }            if(prime == 0) sum += num;            prime = 0;        }            cout << sum << endl;            sum = 0;    }    return 0;}

优化代码:

#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;}
0 0