10131 质数判定

题目描述

判定输入的数是不是质数。

输入格式

第一行输入一个整数 t ,1<=t<=1.5*10^4接下来 t 行,一行一个数 x

输出格式

对于输入的每一个 x,如果 x 是质数输出一行 Y,否则输出一行 N。

样例

输入 #1

5
1
2
6
9
100003
输出 #1

N
Y
N
N
Y
数据范围与提示

1≤x≤10^6。

分类标签

[枚举]

C++题解代码

#include <bits/stdc++.h>
using namespace std;

int n;
int a;
int g;
bool b;


// The main procedure
int main() {
  cin>>n;
  for (int i = 1; i <= n; i++) {
    cin>>a;
    if (a == 1) {
      b = false;
    } else {
      b = true;
      g = sqrt(a);
      for (int j = 2; j <= g; j++) {
        if ((a%j) == 0) {
          b = false;
          break;
        }
      }
    }
    if (b) {
      cout<<"Y";
    } else {
      cout<<"N";
    }
    if (i < n) {
      cout<<'\n';
    }
  }
  return 0;
}

Blockly题解代码图片