文章
28
粉丝
230
获赞
23
访问
243.7k
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char const *argv[])
{
int n,N ;
scanf("%d",&n);
if(n==1){//对1单独处理
printf("%d\n",2);
}else{
N = FoundNum(n);
printf("%d\n",N );
}
return 0;
}
int FoundNum(int num){//寻找素数
for (int i = 2; i < num; ++i)
{
if (num % i == 0)//发现i不是素数
{
num = FindNewOne(num);//寻找新素数
break;
}
}
return num ;
}
int FindNewOne(int Num){
for (int i = Num+1; i < 100000; ++i)//注:题设并未限制新素数的范围
{
if(judge(i)){//判断i是否为素数
return i;
}
}
}
int judge(int Subnum){//传入待判定的数Subnum,利用除数自增的方法判断是否为素数
for (int j = 2; j < Subnum; ++j)
{
if (Subnum % j == 0)//一旦发现存在因子则返回0(不是素数)
{
return 0;
}
}
return 1;
}
登录后发布评论
暂无评论,来抢沙发