给出N个正整数,检测每个数是否为质数。如果是,输出"Yes",否则输出"No"。
Input
第1行:一个数N,表示正整数的数量。(1 <= N <= 1000) 第2 - N + 1行:每行1个数(2 <= S[i] <= 10^9)
Output
输出共N行,每行为 Yes 或 No。
Input示例
5 2 3 4 5 6
Output示例
Yes Yes No Yes No
代码没看太懂,白书上的模板,直接拿来用了,以前学的那个素数打表不能用了,好难受T_T
直接贴代码吧
#include <bits/stdc++.h> using namespace std; bool prime(int n) { for(int i=2;i*i<=n;i++) if(n%i==0) return false; return n!=1; } vector<int> divisor(int n) { vector<int> res; for(int i=1;i*i<=n;i++) { if(n%i==0) { res.push_back(i); if(i!=n/i) res.push_back(n/i); } } return res; } map<int,int> factor(int n) { map<int,int> res; for(int i=2;i*i<=n;i++) { while(n%i==0) { ++res[i]; n/=i; } if(n!=1) res[n]=1; return res; } } int main() { int n; cin>>n; while(n--) { int x; cin>>x; if(prime(x)) cout<<"Yes"<<endl; else cout<<"No"<<endl; } return 0; }