判断素数
题目描述:输入一个整数,判断该整数是否为素数,若是,输出该整数,若否,输出大于该整数的第一个素数。(例如,输入为14,输出17,因为17是大于14的第一个素数)
输入描述:输入一个整数n,n最大为10000。
输出描述:按题意输出。
C语言代码
#include <stdio.h>
int main()
{
int n, lag = 0;
scanf("%d", &n);
if (n == 1 || n == 0) return printf("%d",2);
for (int i = 2; i < n; i++) //判断是否为素数
if (n%i == 0) //不是素数
{
lag = 1;
break;
}
if (lag == 0) printf("%d", n); //是素数
else
{
int j = n + 1, q = 1;//q为1时是非素数
while (q != 0) //找出第一个素数
{
for (int i = 2; i < j; i++)
if (j%i == 0)
{
q = 1; break; //j是非素数,继续加1
}
else q++; //记录q不能被整除的次数,判断是否为素数
if (q ==1 ) j++;
else
{
q = 0; //停止循环
printf("%d", j);
}
}
}
return 0;
}
注意:1不是素数!!!