【C語言程式練習】判斷從鍵盤讀入的正整數x是否為質數
阿新 • • 發佈:2021-01-25
判斷從鍵盤讀入的正整數x是否為質數,並輸出判斷結果。
#include<stdio.h> #include<math.h> int main() { int x, k, i; printf("請輸入一個正整數x:"); scanf_s("%d", &x); if (x <= 0) printf("請輸入一個正整數:"); else if (x == 1) printf("%d is not a prime.\n", x); else { //判斷從2到平方根的數字是否都能被整除即可 k = (int)sqrt(x); for (i = 2; i <= k; i++) if (x%i == 0) break; if (i > k) printf("%d is a prime,\n", x); else printf("%d is not a prime.\n", x); } return 0; }
執行結果:
在此基礎上改寫,找出規定範圍(a,b)內的所有質數,並按每行5個的格式輸出。(這裡a,b變數從鍵盤輸入並且範圍為:10≤a≤b≤1000)
#include<stdio.h> #include<math.h> int main() { int x, k, i, count = 0, a, b; printf("請輸入正整數a,b:"); scanf_s("%d,%d", &a, &b); if (a < 10 || b>1000 || a > b) printf("請輸入a和b使得10<=a<=b<=1000!"); else for (x = a + 1; x < b; x++) { //判斷是否是質數 k = (int)sqrt(x); for (i = 2; i <= k; i++) if (x%i == 0) break; //按照每行5個的格式輸出 if (i > k) { count++; printf("%5d", x); if (count % 5 == 0) printf("\n"); } } printf("\n"); return 0; }
執行結果: