本题目要求读入1个正整数A,判断A是否为素数。
输入格式:
输入1个正整数A。
输出格式:
输出A是或否为素数。
输入样例:
2
输出样例:
2 yes
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
思路
本题判断一个正整数是否为素数。根据素数的定义,如果一个数字只有两个因子(1和它本身),则它是素数。所以该程序需要遍历2到sqrt(a)中的每一个数字,用它们除以待确认的整数a,同时检查是否能整除a。如果存在一个可以整除a的整数(不包括1和a本身),则 a 不是质数。否则,a就是质数。
代码
#include<stdio.h>
#include<math.h>
int main()
{
int a, i;
scanf("%d", &a);
if (a == 1)//1不是质数
printf("%d no", a);
else
{
for (i = 2; i <= sqrt(a); i++) // 遍历2到sqrt(a)每个数字,检查是否存在一个可以整除a的整数
{
if (a % i == 0) // 如果存在一个可以整除a的整数,a就不是质数
break;
}
if (i > sqrt(a))
printf("%d yes", a);
else // 否则,a就是质数
printf("%d no", a);
}
return 0;
}