文章

28

粉丝

230

获赞

23

访问

243.7k

头像
纯C,注意对1单独处理
P1013 贵州大学机试题
发布于2021年2月18日 18:08
阅读数 8.6k

#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;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发