PTA --- 天梯赛 L1-028 判断素数

本题的目标很简单,就是判断一个给定的正整数是否素数。

输入格式:

输入在第一行给出一个正整数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
");
        }else{
            printf("No
");
        }
    }
    return 0;
}
原文地址:https://www.cnblogs.com/expedition/p/11629520.html