1383 - 素数判定
时间限制 : 1 秒
内存限制 : 32 MB
给定一个数n,要求判断其是否为素数(0,1,负数都是非素数)。
题目输入
测试数据有多组,每组输入一个数n。
题目输出
对于每组输入,若是素数则输出yes,否则输入no。
输入/输出样例
输入格式
13
输出格式
yes
C语言解答
#include<stdio.h> #include<math.h> int main() { int a,i,flag; while(scanf("%d",&a)!=EOF) { flag=1; for(i=2;i<=(int)sqrt(a);i++) if(a%i==0)flag=0; if(flag&&a>=2)printf("yes\n"); else printf("no\n"); } return 0; }
C++解答
#include <stdio.h> #include <math.h> bool isPrime(int n){ if(n <= 1){ return false; } int len = (int)sqrt((double) n); for(int i=2; i<=len; i++){ if(n%i == 0){ return false; } } return true; } int main(){ int n; while(scanf("%d", &n) != EOF){ puts(isPrime(n) ? "yes" : "no"); } return 0; }
Java解答
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); w:while(true) { if(in.hasNextInt()) { int n = in.nextInt(); if(isSushu(n)) System.out.println("yes"); else System.out.println("no"); } else break w; } } public static boolean isSushu(int num) { boolean flag = true; if(num>=2) { for(int i=2;i<=num/2;i++) { if(num%i!=0) flag = true; else { flag = false; break; } } } else flag = false; return flag; } }
Python解答
import math,sys def isPrime(n): if n <= 1: return 'no' for i in range(2, int(math.sqrt(n)) + 1): if n % i == 0: return 'no' return 'yes' for line in sys.stdin: print isPrime(int(line.split()[0]))