1797 - 素数判断问题
时间限制 : 1 秒
内存限制 : 128 MB
给定一个非负整数,判断它是否为素数。
题目输入
第一行输入一个数N,表示有N组测试数据。
后面的N行输入多组数据,每组输入数据都是占一行。
题目输出
输出Yes或者No,占一行
输入/输出样例
输入格式
4 1 2 3 4
输出格式
No Yes Yes No
C语言解答
#include <stdio.h> int main(){ int a, n, i, f; scanf("%d", &n); while(n--){ scanf("%d", &a); f= a==1?0:1; for(i = 2; i*i <= a; i++){ if(a%i==0 && a!=2){ f=0; break; } } printf("%s\n", f?"Yes":"No"); } return 0; }
C++解答
#include<stdio.h> #include<math.h> int main() { int i,j,count; scanf("%d",&count); while(count--) { scanf("%d",&i); if(i<0)break; for(j=2;j<=sqrt(i);j++) if(i%j==0)break; if(i==1||i==0)printf("No\n"); else if(j>sqrt(i)) printf("Yes\n"); else printf("No\n"); } return 0; }
Java解答
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int t=sc.nextInt(); while(t-->0) { int num=sc.nextInt(); int result=isPrime(num); if(result==1&&num!=0&&num!=1) System.out.println("Yes"); else System.out.println("No"); } } public static int isPrime(int num)//判断是否为素数 { int temp = (int)Math.sqrt(num)+1; for(int i=2;i<temp;i++) { if(num%i==0) return 0; } return 1; } }