1383 - 素数判定

通过次数

0

提交次数

0

时间限制 : 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]))