練習4-11 統計素數並求和 (20 分)
本題要求統計給定整數M和N區間內素數的個數並對它們求和。
輸入格式:
輸入在一行中給出兩個正整數M和N(1≤M≤N≤500)。
輸出格式:
在一行中順序輸出M和N區間內素數的個數以及它們的和,數字間以空格分隔。
輸入樣例:
10 31
輸出樣例:
7 143
分析:此題明顯有判斷素數的環節,而判斷素數只需要遍歷到sqrt(n)即可。
C語言代碼如下:
1 #include <stdio.h> 2 #include <math.h> 3 int main(){ 4 int m, n, i, sum = 0, count = 0; 5 scanf("%d %d", &m, &n); 6 for(m; m <= n; m++){ 7 for(i = 2; i <= sqrt(m); i++){ 8 if(m % i == 0) 9 break; 10 } 11 if(i > sqrt(m)){ 12 if(m == 1) 13 count = count; 14 else{ 15 sum += m; 16 count++; 17 } 18 } 19 } 20 printf("%d %d\n", count, sum); 21 return 0; 22 }