HDU5150 Sum Sum Sum
生活随笔
收集整理的這篇文章主要介紹了
HDU5150 Sum Sum Sum
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題鏈接:HDU5150 Sum Sum Sum。
題意簡述:測試數據有多組,每組首先輸入正整數n(1≤n≤1000),然后輸入n個整數(1≤整數≤1000)。計算其中素數的和。
問題分析:對于測試數據比較多的情況,打表合適的。
程序說明:使用篩選法進行打表,然后再判斷合計。
AC的C語言程序如下:
/* HDU5150 Sum Sum Sum */#include <stdio.h> #include <memory.h> #include <math.h>#define MAXN 1000int notprime[MAXN+1];void esieve(int p[], int n) {int i, j;memset(p, 0, MAXN+1);// 篩選int max = (int)sqrt(n);for(i=2; i<=max; i++) {if(p[i] == 0) {for(j=i+i; j<=n; j+=i)p[j] = 1;}}} int main(void) {esieve(notprime, MAXN);int n, sum, val, i;while(scanf("%d", &n) != EOF) {sum = 0;for(i=1; i<=n; i++) {scanf("%d", &val);if(!notprime[val])sum += val;}printf("%d\n", sum);}return 0; }
轉載于:https://www.cnblogs.com/tigerisland/p/7564307.html
總結
以上是生活随笔為你收集整理的HDU5150 Sum Sum Sum的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaScript 总结几个提高性能知
- 下一篇: 不需要浮动的标签