给出N个正整数,检测每个数是否为质数。如果是,输出"Yes",否则输出"No"。
第2 - N + 1行:每行1个数(2 <= S ii <= 10^9)Output输出共N行,每行为 Yes 或 No。Sample Input
5 2 3 4 5 6Sample Output
Yes Yes No Yes No
c++:
#include <iostream>
#include <cstdio>#include <cmath>
bool isprime(int n)//判断是否是质数
{
if(n<=1)return false;
int sqr=(int)sqrt(1.0*n);//用平方根来代替原数,提高效率,
//效果一样,具体证明略
for(int i=2;i<=sqr;i++){
if(n%i==0)
return false;
}
return true;
}
int main() {
int a,n;
scanf("%d",&n);
while(n--)
{
scanf("%d",&a);
if( isprime(a))
printf("Yes\n");
else
printf("No\n");
}
return 0;
}
____________________________________________________________________
JAVA:
import java.util.Scanner;
public class 素數 {
public static void main(String[]ages)
{
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
while(n>0)
{
int a=sc.nextInt();
if(f(a))
System.out.println("Yes");
else
System.out.println("NO");
}
}
static boolean f(int a)
{
for(int i=2;i<=Math.sqrt(a);i++)
{
if(a%i==0)
return false;
}
return true;
}
}