1. 程式人生 > >素數和

素數和

() str true 測試數據 程序 ios light blog else if

描述
現在給你N個數(0<N<1000),現在要求你寫出一個程序,找出這N個數中的所有素數,並求和。

輸入
第一行給出整數M(0<M<10)代表多少組測試數據
每組測試數據第一行給你N,代表該組測試數據的數量。
接下來的N個數為要測試的數據,每個數小於1000
輸出
每組測試數據結果占一行,輸出給出的測試數據的所有素數和

#include<iostream>
using namespace std;
int main ()
{
        int n;
        cin>>n;
        int a[n];
        int i, j, k = 0;
        int flag = 1;
        int b[n][10000];
        int sum = 0;
        for(i = 0; i < n; i++)//輸入n個數據 並輸入數據
        {
                cin>>a[i];
                for(j = 0; j < a[i]; j++)
                        cin>>b[i][j];
        }
        while(k < n)//計算數據中的素數並求和
        {
                for(i = 0; i < a[k]; i++)
                {
                        j = 2;
                        if(b[k][i] == 2)
                                sum += b[k][i];
                        else if(b[k][i] == 0 || b[k][i] == 1 || b[k][i] == 4)
                                sum = sum;
                        else
                        {
                                while(j < (b[k][i]+1)/2)//是否為素數
                                {
                                        if(b[k][i] % j == 0)
                                        {
                                                flag = 0;
                                                break;
                                        }
                                        j++;
                                }
                                if(flag)
                                        sum += b[k][i];
                                flag = 1;
                        }
                }
                cout<<sum<<endl;//重置
                sum = 0;
                k++;
        }
}

技術分享

素數和