AcWing 866. 试除法判定质数
原题链接
简单
作者:
满目星河_0
,
2021-04-10 12:29:01
,
所有人可见
,
阅读 228
试除法判定质数
//质数定义:除了1和本身之外没有其他的数可以整除。
//算法思想:一个数的因数都是成对出现的:例如12的因数有3和4,2和6 所以我们可以只枚举较小的那一个,即
//根下n,假设较小的为d,较大的为n/d;这样的时间复杂度由n变成了根号n
#include<iostream>
using namespace std;
const int N=110;
int a[N];
bool judge_prime(int num){
if(num<2) return false;
else{
for(int i=2;i<=num/i;i++){//时间复杂度为根号n
if(num%i==0) return false;
}
}
return true;
}
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
if(judge_prime(a[i])) printf("Yes\n");
else printf("No\n");
}
return 0;
}