L1-028 判断素数
本题的目标很简单,就是判断一个给定的正整数是否素数。
输入格式:
输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于2 31的需要判断的正整数。
输出格式:
对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No。
输入样例:
2
11
111
输出样例:
Yes
No
#include "bits/stdc++.h"
using namespace std;
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
int x;
cin>>x;
//判断待判断的x时候小于2,如果小于2是直接要输出no
if(x<2){
cout<<"No"<<endl;
}
else {
//这个用来做一个标记。如果x不是素数,就赋值为1
int flag = 0;
//这里i小于等于sqrt(x),有效减少循环次数
for (int i = 2; i <= sqrt(x); i++) {
if (x % i == 0) {
flag = 1;
break;
}
}
if (flag == 0) {
cout << "Yes" << endl;
} else {
cout << "No" << endl;
}
}
}
return 0;
}