ACM 入門1170
阿新 • • 發佈:2018-10-31
/*題目描述 求100~200之間的全部素數,
輸入 無
輸出 100~200之間的全部素數,一個素數佔一行。
樣例輸入 無
樣例輸出
101
103
…
197
199 */
首先,咱們先用整數大法來判定
#include<stdio.h> int main() { int n=100,i=2; for (n=100;n<=200;n++) //代表循壞從100執行至200 { for (i=2;i<n;i++) //判定條件:n是否在2或n-1之間能整除 { if (n%i==0) break; // 如能整除,停止語句,注意,詞語句只會影響第二個for語句 } if (i>=n) printf("%d\n",n); //如果i>n-1了,在判定條件之外,證明其是素數 } return 0; }
當然還有另外一種方法,平方根大法,此種方法求起來速度更快;
#include<stdio.h> #include<math.h> int main() { int n=100,i=2,x; for (n=100;n<=200;n++) //代表循壞從100執行至200 { x=sqrt(n); //x是n的平方根形式的整數部分,這個不能放到int語句下方,否則x的值就成唯一常數,沒意義了 for (i=2;i<=x;i++) //判定條件:i是否在2或平方根n之間能被n整除 { if (n%i==0) break; // 如能整除,停止語句,注意,詞語句只會影響第二個for語句 } if (i>x) printf("%d\n",n); //如果i>n-1了,在判定條件之外,證明其是素數 } return 0; }
喜歡就評論下方把