题目描述:
输入一个正整数n,判断n是否是素数,若n是素数,输出”Yes”,否则输出”No”。
输入:
输入一个正整数n(n<=1000)
输出:
如果n是素数输出"Yes",否则输出"No"。输出占一行。
样例输入
2
样例输出
Yes
思路:
首先要明白什么是素数,素数也就是质数,只能被1和它本身整除。(例如:2,3,5,7,11,13,17,19···)其次要明白如何判定素数,也就是用这个数(假设是n>2)除以2~(n-1),即1和它本身之间的所有数字,若能被整除(取余为0则可以被整除),则不满足素数定义,就不是素数。接下来说一下代码思路,首先,先用if语句对特殊情况进行判断,看是否属于特殊情况,若不属于,则用上述方法进行判断。
代码:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int n;
int i;
scanf("%d",&n); //输入要判定的数,取地址为n
//特殊情况
if (n == 1) //判断n是否为1的特例
{
printf("No");
}
else if (n == 2) //判断n是否为2的特例
{
printf("Yes");
}
//非特殊情况
else //n不是1或2,就可以用上述思路中的方法进行判断了
{
for (i = 2; i < n; i++) //通过for循环来依次除以2~n-1,判断是否不是素数
{
if (n % i == 0) //若不是素数直接跳出循环
{
break;
}
}
if (i == n) //判断是循环正常结束还是循环被跳出
{
printf("Yes"); //循环正常结束
}
else
{
printf("No"); //循环被跳出
}
}
return 0;
}