本題的目標很簡單,就是判斷一個給定的正整數是否素數。
輸入格式:
輸入在第一行給出一個正整數N
(≤ 10),隨后N
行,每行給出一個小於231的需要判斷的正整數。
輸出格式:
對每個需要判斷的正整數,如果它是素數,則在一行中輸出Yes
,否則輸出No
。
輸入樣例:
2
11
111
輸出樣例:
Yes
No
本題有3道坑點:
- 1不是素數
- 素數 :除了1和它本身以外不再被其他的除數整除
- 判斷素數: 對於正整數n ,只需要從 2 開始到 根號n 【包括根號n】,遍歷即可,如果期間存在一個數可以被n 整除,則n 就不是素數
#include<stdio.h> #include<math.h> int getSu(int n){ if(n == 1) return -1; int y = (int) sqrt(n); for(int i = 2;i <= y;i++){ if( n % i == 0){ return -1; } } return 1; } int main(){ int n; scanf("%d",&n); while(n--){ int x; scanf("%d",&x); int i = getSu(x); if(i == 1){ printf("Yes\n"); }else{ printf("No\n"); } } return 0; }