作者 usx程序设计类课程组
单位 绍兴文理学院
输入一个正整数m(m>1),判断该数是否为素数。
输入格式:
首先输入测试组数T,然后输入T组测试数据。每组测试输入一个正整数m。
输出格式:
对于每组测试,若m为素数则输出yes
;反之输出no
。
输入样例:
3
9
3
7
输出样例:
no
yes
yes
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
栈限制
8192 KB
#include<stdio.h>
#include<math.h>
// 判断一个数是否为素数,如果是返回1;否则返回0。
int sushu(int m)
{
int i;
if(m==1) // 若m=1,则不是素数
return 0;
for(i=2;i<=(int)sqrt(m);i++) // 从2到sqrt(m)范围内的整数去试除m
{
if(m%i==0) // 若m能被某个整数i整除,则m不是素数
return 0;
}
return 1; // 如果m不能被2到sqrt(m)之间任何整数除尽,则它是素数
}
int main( )
{
int m,T,i;
scanf("%d",&T);
for(i=1;i<=T;i++) // 循环控制测试数据的数量
{
scanf("%d",&m);
if(sushu(m)) // 如果m为素数,则输出"yes"
{
printf("yes\n");
}
else // 否则输出"no"
printf("no\n");
}
}