--- tags: DICE C --- 22-6 也是質數個數 === > [name=CHAWTeam] 目錄:[DICE C語言程式破解](/@CHAWTeam/DiceC) 題目 --- ```! 請自訂函式countprime(),輸入兩正整數A、B,且B>A, 回傳A~B之間(包含A、B)有多少個質數。 質數的定義為:除了1和它本身之外,沒有別的數可以整除它。 程式重複輸入,直到輸入的A>B才停止。 輸入範例: 1 10 10 20 20 30 30 40 2 1 輸出範例: 4 4 2 2 ``` 程式碼 --- ```c= #include <stdio.h> int prime(int x) { if (x > 1) { if (x == 2) return 1; for (int i = 2; i < x; i++) { if (x % i == 0) return 0; } return 1; } else return 0; } int countprime(int a, int b) { int times = 0; for (a; a <= b; a++) { if (prime(a) == 1) times++; } return times; } int main() { int a, b; scanf("%d %d", &a, &b); while (a <= b) { printf("%d\n", countprime(a, b)); scanf("%d %d", &a, &b); } return 0; } ``` 執行 --- ### 輸入 ```! 1 10 10 20 20 30 30 40 2 1 ``` ### 輸出 ```! 4 4 2 2 ``` --- [查看我們在HackMD上的所有筆記](/@CHAWTeam) 目錄:[DICE C語言程式破解](/@CHAWTeam/DiceC) --- {%hackmd Iiu5mOixR7yWkPHKCkabBg %} <iframe class="LikeCoin" height="235" src="https://button.like.co/in/embed/chawteam/button?referrer=https://hackmd.io/@CHAWTeam/DiceC-22-6" width="100%"></iframe> --- {%hackmd i1nMRrZcTFmTvoF897K9zg %}