-
题目描述:
-
给定一个数n,要求判断其是否为素数(0,1,负数都是非素数)。
-
输入:
-
测试数据有多组,每组输入一个数n。
-
输出:
-
对于每组输入,若是素数则输出yes,否则输入no。
-
样例输入:
-
13
-
样例输出:
-
yes
思路:
素数判定的方式,通常是从1搜到sqrt(n),看n是否能整除他们。
代码:
#include <stdio.h>
#include <math.h>
int main(void)
{
int n;
int i;
unsigned un;
while (scanf("%d", &n) != EOF)
{
if (n <= 1)
{
printf("no\n");
continue;
}
un = n;
for (i=2 ; i<=(int)sqrt(un); i++)
{
if (un % i == 0)
break;
}
if(i == (int)sqrt(un)+1)
printf("yes\n");
else
printf("no\n");
}
return 0;
}
/**************************************************************
Problem: 1047
User: liangrx06
Language: C
Result: Accepted
Time:0 ms
Memory:928 kb
****************************************************************/