本题的目标很简单,就是判断一个给定的正整数是否素数。
输入格式:
输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于2^31的需要判断的正整数。
输出格式:
对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No。
输入样例:
2
11
111
输出样例:
Yes
No
#include<iostream>
#include<cmath>
using namespace std;
int getSu(int n);
int main(void)
{
int n;
cin >> n;
while (n--)
{
int m;
cin >> m;
int f = getSu(m);
if (f == -1)
cout << "No\n";
else
cout << "Yes\n";
}
}
int getSu(int n)
{
if(n == 1)
return -1;
int t = (int) sqrt(n);
/*处理素数只需要判断到根号就好了,
一个数如果不能整除某个数那么
他的平方也不可以整除那个数,
例如5不能整除63那么25也不能整除63*/
for(int i = 2;i <= t;i++)
if( n % i == 0)
return -1;
return 1;
}