![](https://file.51nod.com/images/icon/ok.png)
基准时间限制:1 秒 空间限制:131072 KB 分值: 0
![](https://file.51nod.com/images/icon/star.png)
![](https://file.51nod.com/images/icon/plus.png)
给出N个正整数,检测每个数是否为质数。如果是,输出"Yes",否则输出"No"。
Input
第1行:一个数N,表示正整数的数量。(1 <= N <= 1000)第2 - N + 1行:每行1个数(2 <= S[i] <= 10^9)
Output
输出共N行,每行为 Yes 或 No。
Input示例
523456
Output示例
YesYesNoYesNo
代码没看太懂,白书上的模板,直接拿来用了,以前学的那个素数打表不能用了,好难受T_T
直接贴代码吧
#includeusing namespace std;bool prime(int n){ for(int i=2;i*i<=n;i++) if(n%i==0) return false; return n!=1;}vector divisor(int n){ vector 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 factor(int n){ map 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"<