大橙子网站建设,新征程启航

为企业提供网站建设、域名注册、服务器等服务

《c语言入门题目19》判断一个数是不是质数(素数)-创新互联

前言:(内容仅供分享和参考):

成都创新互联专注于霸州企业网站建设,响应式网站设计,商城系统网站开发。霸州网站建设公司,为霸州等地区提供建站服务。全流程按需定制设计,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务

什么是质数: 质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数(规定1既不是质数也不是合数)。========================================================================

题目:编写编程,判断在指定范围内的数是不是质数(素数)

代码:(用到的软件:VisualStudio)

(用Dev-C++的把scanf_s换成scanf就行了)

1.如何判断是不是素数

这里用到的判断方法是一个个去除,比如让5分别处以1,2,3,4,5,如果该数能被该数范围内的数求余为0,说明该数有能被除了1和它自身外的其他自然数整除,所以不是素数。 

int prime(int n)
{
	if (n< 2) return 0;//根据质数定义,排除特殊情况
	int flag = 1;//定下一个标识
	for (int i = 2; i< n; i++)
	{
		if (n % i == 0)
//如果能被取余为0,这输出0,直接跳过,因为该数已经不是质数了,比如4,4%2=0;
//所以可以直接break跳过这一个数的判断,直接进入下一个
//如果都判断完了,都没有取余到0,说明该数只能被1和他本身整除,是质数
//还记得一开始下的标识是1吗,如果没有进入到if语句的执行条件,那么最后的返还结果就是1
		{
			flag = 0;
			break;
		}
	}
	return flag;
}

如果能被取余为0,这输出0,直接跳过,因为该数已经不是质数了,比如4,4%2=0;
所以可以直接break跳过这一个数的判断,直接进入下一个。如果都判断完了,都没有取余到0,说明该数只能被1和他本身整除,是质数(当然一开始要排除特殊情况,比如负数和1)
还记得一开始下的标识是1吗,如果没有进入到if语句的执行条件,那么最后的返还结果就是1,

输入到print_prime函数的if中判断为真(因为是1,假就是0),接着输出打印这一质数即可。

2.用指针去修改内存,达到一个可以让用户在输入窗口修改范围的效果。

(这样就不用老是在编译器里改了)

void print_prime(int* a, int* b)//定义指针a,b方便修改内存变量,到达可供外部输入的效果
{	
	printf("请输入要判断是否是质数的范围,用空格隔开两个数:");//提示语
	scanf_s("%d%d", a, b);
	for (int i = *a; i<= *b; i++)//开始循环
	{
		if (prime(i))//应用判断质数函数
		{
			printf("%d是质数。\n", i);//将范围内的质数答应出来
		}
	}
}

全部代码:

#includeint prime(int n)
{
	if (n< 2) return 0;
	int flag = 1;
	for (int i = 2; i< n; i++)
	{
		if (n % i == 0)
		{
			flag = 0;
			break;
		}
	}
	return flag;
}
void print_prime(int* a, int* b)
{	
	printf("请输入要判断是否是质数的范围,用空格隔开两个数:");
	scanf_s("%d%d", a, b);
	for (int i = *a; i<= *b; i++)
	{
		if (prime(i))
		{
			printf("%d是质数。\n", i);
		}
	}
}
	int main()
	{
		int a=0, b=0;
		print_prime(&a,&b);
		return 0;
	}

========================================================================

结果图:

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


标题名称:《c语言入门题目19》判断一个数是不是质数(素数)-创新互联
网站路径:http://dzwzjz.com/article/jiedj.html
在线咨询
服务热线
服务热线:028-86922220
TOP