C语言———打印100—200之间的素数并统计素数个数的三种写法

2023-11-01

素数:除了1和它本身以外再无其他因子

1、试除法:判断i是否时素数,则用2—>i-1个数去整除i,若可以整除,则说明i不是素数


int main()
{
	int i = 0;  //用i记录100-200之间的数
	int count = 0;   //用count统计100-200之间的素数个数
	for (i = 100; i <= 200; i++)
	{
		int j = 0;    //用j记录比i小的2—>i-1个数字 
		for (j = 2; j <i; j++)    //j<i则为i-1个数字
		{
			if (i % j == 0)     //如果i整数j,则说明i含有因子
			{
				break;//跳出for循环
			} 
		}
		//执行if有两种情况:1、break跳出。
		//2、for循环不满足规则就j<i了,跳出,此时i为素数。
		if (j == i)    // j==i时说明将2—>i-1个数字均试完了,均不整除,则i为素数
		{
			count++;
			printf("%d ", i);
		}
	}
	printf("\ncount=%d\n",count);
	return 0;
}

2、试除法的改进(增加算法的效率)

在i开根号之前若可以找到i的因子则i 不为素数。

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<math.h>

int main()
{
	int i = 0;//用i记录100-200之间的数
	int count = 0;//用count统计100-200之间的素数个数
	for (i = 100; i <= 200; i++)
	{
		int j = 0;//用j记录比i小的2—>i-1个数字 
		for (j = 2; j <=sqrt(i); j++)//sqrt(i)也可以写为i/2,因为sqrt(i)一定小于i/2
		{
			if (i % j == 0)//如果i整数j,则说明i含有因子
			{
				break;//跳出for循环
			} 
		}
		if (j>sqrt(i))
		{
			count++;
			printf("%d ", i);
		}
	}
	printf("\ncount=%d\n",count);
	return 0;
}

3、我们知道偶数一定不是素数,所以在判断 i 是否为素数时可以直接将偶数跳过。

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<math.h>
int main()
{
	int i = 0;//用i记录100-200之间的数
	int count = 0;//用count统计100-200之间的素数个数
	for (i = 10; i <= 200; i+=2)//从101开始步长为2,跳过偶数
	{
		int j = 0;//用j记录比i小的2—>i-1个数字 
		for (j = 2; j <=sqrt(i); j++)
		{
			if (i % j == 0)//如果i整数j,则说明i含有因子
			{
				break;//跳出for循环
			} 
		}
		//执行if有两种情况:1、break跳出。
		//2、for循环不满足规则就j<i了,跳出,此时i为素数。
		if (j>sqrt(i))
		{
			count++;
			printf("%d ", i);
		}
	}
	printf("\ncount=%d\n",count);
	return 0;
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言———打印100—200之间的素数并统计素数个数的三种写法 的相关文章

随机推荐

  • python selenium启动常用

    加载超时设置 browser set page load timeout 5 二进制转16进制 a 00000000 hex int a 2 from selenium import webdriver import time from s
  • Python学习-----流程控制3.0(习题实操)

    目录 前言 1 求和 2 求阶乘 3 输出100以内的奇数 4 打印九九乘法表 5 斐波那契数列 6 打印空心矩形 7 打印三角形 8 求两个数字之间的最大公约数 9 质数问题 10 进制数转换 11 字符统计 12 字符匹配问题 13 求
  • 终于有人把数据指标体系讲明白了

    来源 数据学堂 数据岗的核心职能 在于产出数据资产 提升信息的价值密度 而指标体系就是一个组织最为重要的数据资产 那么 1 为什么指标体系这么重要 2 什么是指标体系 3 指标体系的衡量标准是什么 4 如何去搭建一套好的指标体系 只要弄清楚
  • C++ primer 第十一章习题

    chapter11 关联容器 文章目录 chapter11 关联容器 练习 11 1 节练习 练习11 1 练习11 2 练习11 3 练习11 4 11 2 1 节练习 练习11 5 练习11 6 练习11 7 练习11 8 11 2 2
  • 脏牛提权(cve-2016-5159)

    漏洞范围 大于2 6 22版本 2007年发行 到2016年10月18日修复 危害 低权限的用户可利用这一漏洞在本地进行提权 原理 linux内核的子系统在处理写入时复制至产生了竞争条件 恶意用户可利用此漏洞来获取高权限 对只读内存映射进行
  • 如何快速选择开源许可证License,看这三个就够了

    开源License很多 如果你不想在License耗费太多精力 那么推荐你重点了解这三种 GPL Apache License及MIT 这三种在开源License中很具代表性 使用广泛 且简洁易理解 同时 这三种license是经过OSI
  • MySQL数据库学习

    目录 从管理员cmd页面打开数据库 创建一个用户 数据库的基本操作 数据完整性 完整性约束管理 表的基本操作 判断关键字 聚合函数 多表连接查询 嵌套查询 联合查询 事务 锁 索引 视图 存储过程 函数 与存储过程类似 光标 触发器 JAV
  • lazarus调用http接口解析json(迎接云计算适应微服务)

    lazarus 跨平台free pascal语言ide工具 社区 http www fpccn com 下载 ftp freepascal dfmk hu pub lazarus 号称一次编码 到处编译 window linux macos
  • 制造业数据治理白皮书(2022版)

    全书基于双方赋能一线制造业企业数字化转型过程的实操践行 经验沉淀和所感所悟 分别从背景及趋势 现状与挑战 实施途径 典型案例等角度揭示了当下制造业数据治理的重要性 关注公众号 互联互通社区 回复 DATA176 获取全部报告内容 精彩推荐
  • ES集群宕机后处理——重新分配shards,负载均衡

    ES集群5台机器 由于同时读写导致其中一台机器宕机 原本每天的索引shard数设定为10 这样5台机器每台分配2个shard 但是一旦集群宕机 重启集群后 5号机器宕机导致它上面的shard会转移到其他1 4号机器上 如果此时往ES里写数据
  • UE4_DatatTable数据保存

    UE4 提供了很多数据持久的工具 很多 1 2 3 网上使用UE4 c 操作DataTable的也很多 不接入别人的链接了 使用C 操作DataTable修改数据也没啥大的问题 坑爹的地方 修改完数据之后 重启编辑器之后 修改的数据恢复之前
  • 线性、非线性分类器&数据的线性、非线性

    线性 非线性分类器 数据的线性 非线性 一 线性分类器 有无数个可划分这两个线性可分类的超平面 在二维空间里面 一个线性分类器是一条线 图14 8展示了五个分类例子 这些线有一个函数形式w1x1 w2 x2 b 线性分类器的分类规则是 如果
  • Unity如何使用手机进行调试(真机)

    文章目录 手机操作 具体步骤 Unity操作 错误处理 没有检测到手机 手机操作 首先打开手机的 USB调试 开关 具体步骤 这里以华为手机举例 手机的系统是EMUI10 具体操作如下 首先打开手机 gt 进入 设置 找到 关于手机 连续点
  • linux内核模块作用,Linux内核模块(二)

    ko kernel object so shared object root rhel6 ls lib modules uname r kernel arch x86 kvm kvm amd ko kvm intel ko kvm ko 通
  • 强化学习奖励和状态设计

    奖励 1 稀疏奖励问题 2 奖励模式化问题 3 奖励不能太过于全局化 4 记住一些常用的奖励设置方式 5 逆向强化学习自动涉及回报函数 6 避免奖励异常问题 贪婪 来回踱步 胆怯 不敢走 主线奖励太小 鲁莽 惩罚不够 7 采用reward
  • Excel文件导出总结,包含大数据量的分批导出方式

    文章目录 更新记录 需求背景 参考内容 导出方式 代码实现 Excel4J 普通导出 POI原生方式 普通导出 大数据量分批导出 2023 08更新 实际应用记录 依赖版本 实现思路 POI工具类 数据写入 调用测试 测试结果 一个小意外
  • 云原生Kubernetes:K8S实用插件和工具

    目录 一 理论 1 Kubectl插件 2 kubens 3 krew 二 实验 1 kubectl插件 2 kubens 3 krew 一 理论 1 kubectl插件 1 概念 kubectl插件其实就是以kubectl 为前缀的任意可
  • 最喜欢的科技资讯类英文网站

    最喜欢的科技资讯类英文网站 1 手机类 http www phonearena com 喜欢原因 全球主要机型的手机都有罗列 新闻更新速度非常之快 上市未上市机型都能涵盖 2 计算机类 http www computerworld com
  • 史上最简单的SpringCloud教程

    在上一篇文章 讲了服务的注册和发现 在微服务架构中 业务都会被拆分成一个独立的服务 服务与服务的通讯是基于http restful的 Spring cloud有两种服务调用方式 一种是ribbon restTemplate 另一种是feig
  • C语言———打印100—200之间的素数并统计素数个数的三种写法

    素数 除了1和它本身以外再无其他因子 1 试除法 判断i是否时素数 则用2 gt i 1个数去整除i 若可以整除 则说明i不是素数 int main int i 0 用i记录100 200之间的数 int count 0 用count统计1