本题的目标很简单,就是判断一个给定的正整数是否素数。
输入格式:
输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于231的需要判断的正整数。
输出格式:
对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No。
输入样例:
2
11
111
输出样例:
Yes
No
代码长度限制16 KB
时间限制400 ms
内存限制64 MB
思路:
可以根据素数的定义判断是否为素数,但是直接判断容易时间超限,得6分,可以对该数进行开平方进行判断。
代码:
#include<iostream>
#include<cmath>
using namespace std;
int number(int x)//判断是否为素数
{
if(x==1) return 0;//1不为素数
for(int i=2;i<=sqrt(x);i++)//对这个数进行开平方
{
if(x%i==0) return 0;
}
return 1;
}
int main()
{
int T;
cin>>T;
while(T--)
{
int x;
cin>>x;
if(number(x)) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
return 0;
}
结束线: