1. 程式人生 > >素數求和

素數求和

Description 輸入一個正整數N和N個正整數,統計其中素數的和。

Input 輸入一個正整數N(1≤N≤100)和N個正整數(≥3),用空格分隔。

Output 輸出所有素數,用空格隔開;再輸出這些素數和。

Sample Input 10 4 5 8 12 13 24 34 37 20 88 5 1 5 8 12 13

Sample Output 5 13 37 s=55 5 13 s=18

#include<stdio.h> #include<math.h> int main() { int m,N,i,j,n,s=0; scanf("%d",&N);\代表要輸入N個數字 for(i=1;i<=N;i++)\大前提,判斷N次 { scanf("%d",&n);\輸入N個數字,分別判定 m=sqrt(n); for(j=2;j<=m;j++)\對輸入數字的判定方法 if(n%j==0)break;\這部分是對素數的判定,被整除就跳出,防止不必要的資源浪費 if(j>m)\判斷在大前提裡,不能移到第一個for外面去,但和第二個for是並列關係,按順序進行 { printf("%d ",n);\按題目要求,每個素數輸出且講素數相加,注意:此時s的輸出不能放在這個語句內,因為在迴圈中,會不斷輸出s= s=s+n;\這個需放在迴圈中,放在return 0前面會導致s的值為輸入的數中最後一個素數的值 } } printf(“s=%d”,s); //輸出s return 0; }