C语言典型例题57

《C程序设计教程(第四版)------谭浩强》

例题4.9 判断整数是否为素数


代码:

复制代码
//《C程序设计教程(第四版)------谭浩强》
//例题4.9 判断整数是否为素数

//【数学知识】素数:一个大于1的自然数,如果只能被1和它本身整除,则称该数为素数。

#include <stdio.h>

int main()
{
	int x=0;
	int judge_number=1;

	printf("请输入你想要判断是否为素数的数:\n");	
	scanf("%d",&x);
	
	if(x<=1)
	{
		judge_number=0;
		return 0;
	}
	
	int i=0;
	for(i=2;i<(x-1);i++)
	{
		if(x%i==0)
		{
			judge_number=0;
			break;
		}
		

	}

	if(judge_number==0)
	{
		printf("!!!不是素数!!!");
	}
	else
	{
		printf("!!!是素数!!!");
	}
	
	return 0;
}

运行结果:

调试:

1.调试过程:

2.思路

(1)排除x≤1的所有数,只要这个数x≤1,那么这个数就不是素数;

(2)只要发现这个数x在2~(x-1) 中只要有一个数存在x%i=0,那么这个数就是素数。

(3)【优化效率】在2到x½ 中只要存在x%i=0,那么这个数就是素数。

为什么?

比如:16可以分为(1,16)、(2,8)、(4、4),只要这个数16它在1~16½没有一个数可以让它整除,那么这个数就是素数。

相关推荐
wangjialelele几秒前
二刷C语言后,一万字整理细碎知识点
c语言·开发语言·数据结构·c++·算法·cpp
mjhcsp4 分钟前
P3145 [USACO16OPEN] Splitting the Field G(题解)
开发语言·c++·算法
rit84324997 分钟前
UVE算法提取光谱特征波长的MATLAB实现与应用
开发语言·算法·matlab
StandbyTime8 分钟前
C语言学习-菜鸟教程C经典100例-练习40
c语言
阿蒙Amon13 分钟前
C#每日面试题-简述反射
开发语言·面试·c#
越甲八千17 分钟前
python socket
开发语言·python
缺点内向19 分钟前
告别“复制粘贴”:用C#和模板高效生成Word文档
开发语言·c#·word
edisao20 分钟前
【开源】轻量级 LLM 文本质检工具:精准识别核心概念缺失,支持动态别名 + 反馈闭环
大数据·开发语言·人工智能·经验分享·gpt·架构·开源
Leweslyh29 分钟前
【实战】如何在家定位国际空间站 (ISS)? —— 坐标转换的魔法 (例题 5.9)
开发语言·javascript·ecmascript
Sheep Shaun31 分钟前
深入理解AVL树:从概念到完整C++实现详解
服务器·开发语言·数据结构·c++·后端·算法