欧意交易所-欧意app官方下载平台_数字货币交易所

欧意交易所-欧意app官方下载平台_数字

欧易交易所[C语言]输出100以内的所有素数(质数)

时间:2024-10-06 04:14来源: 作者:admin 点击: 22 次
C语言如何打印输出100以内的素数,这里提供代码,思路,帮助理解,并且有详细的代码注释解析 玛卡码农 GitCode 开源社区

概念解读 :

质数又被称为素数,是指一个大于1的自然数,除了1和它自身外,不能被其它自然数整除,且其个数是无穷的。

思路分析:

对于代码大方向,我们可以直接主函数中写,也可以用可移植性高的自定义函数来写。

100以内样例输出示意

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

后面是大于100的素数,可以修改代码中的循环条件的范围来改变自己的输出

代码内容:

思路一:

#include <stdio.h> #include <stdlib.h> int main() { int i ,j; //定义变量循环 printf("打印100以内所有素数:\n"); for(i = 2;i <= 100; i++){ //外循环从2遍历到100,可以修改范围输出不同范围内的素数 for(j = 2;j < i; j++){ //内循环通过大于1小于自身的因数进行依次取余判断,直到相除没有余数,跳出循环。 if(i % j == 0){ break; } } if(j == i){ //这个判断是重点,意思是在前面的条件成立的前提下除数和被除数相等的才为素数,例如12有3×4,但是不相等,例如13只有当i==j是即i==j==13时候才能成立 printf("%d ",i); } } return 0; }

代码分析:通过二重循环,外循环从2遍历到100,可以修改范围输出不同范围内的素数,内循环通过大于1小于自身的因数进行依次取余判断,直到相除没有余数,跳出循环。这个判断是重点,意思是在前面的条件成立的前提下除数和被除数相等的才为素数,例如12有3×4,但是不相等,例如13只有当i==j是即i==j==13时候才能成立 。

思路二:

#include <stdio.h> #include <stdlib.h> #include <math.h> #include <stdbool.h> bool isprime(int i) //判断是否是素数的自定义函数 { int j; for(j = 2; j < sqrt(i); j++){ //for循环判断如果不是素数则返回0 if(i%j == 0){ //如果在i的平方根范围内的所有数字都不能被整除就说 //明这个数字是素数,但凡有一个能被整除那么这个数字就违背了素数的定义 return 0; } } return 1; //如果是素数则返回1 } int main() { int i ,j; printf("打印100以内所有素数:\n"); for(i = 2;i <= 100; i++){ //for循环遍历一个一个判断,如果是素数那么就打印出来,遍历的数字范围能被修改,输出不同范围的素数 if(isprime(i)){ printf("%d ",i); } } return 0; }

代码分析:非素数一定是由两个数字相乘所得,所以另一种思路即为sqrt()函数对除数开平方根,对其开平方根后的数字对于素数来说一定是最大的平方根,一个数字分解为任意两个乘数一定是小于等于其开平方根的数值的,所以我们循环条件只需要小于这个数字的开平方根的数字即可;被除数则小于被判断数字的开方根的数字,最后经过判断,如果在有返回值的即为素数,这种方法可以使用可移植性较高的自定义函数完成。

以上就是我对100以内输出素数的所有见解,如果不同见解可以私信我

# 算法 # c语言

Logo

GitCode 开源社区

旨在为数千万中国开发者提供一个无缝且高效的云端环境,欧易交易所以支持学习、使用和贡献开源项目。

加入社区

更多推荐

[转载]在Windows环境下安装GNU Radio

转自:在Windows环境下安装GNURadio_恐弱智_新浪博客GNU Radio是用Python开发的,大部分开源的工程能够在Linux环境下运行良好,而Windows下却运行的很勉强,欧意交易所app官方下载而且安装配置都很复杂。GNU Radio算是个例外了,不光提供了Windows的二进制安装,还有比较详细的说明。我是Python小白,数字货币交易平台所以折腾了好久才弄好,特意记录下来,免得以后再装还折腾。GNU Radio的

avatar

GitCode 开源社区

centOS 8 使用dnf安装Docker

DNF是什么?CentOS 8使用YUM软件包管理器版本v4.0.4。现在,该版本使用DNF(已删除YUM)。DNF是软件包管理器。它会在Linux发行版上安装,执行更新并删除软件包。使用DNF安装Docker跳过具有损坏依赖性的程序包一个有效的解决方案是使您的CentOS 8系统使用以下--nobest命令安装最符合条件的版本:sudo dnf install docker...

avatar

GitCode 开源社区

定时同步数据库表(mysql+linux+crontab)

sync.sh里面的参数需要改变,ip/username/password/database/tablesync.sh#!/bin/sh# Please change the IP and password of the data source db.# Then change the table name.filename=/home/nington/db/$(date +%Y-%m

avatar

GitCode 开源社区

(责任编辑:)
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:
发布者资料
查看详细资料 发送留言 加为好友 用户等级: 注册时间:2024-10-19 08:10 最后登录:2024-10-19 08:10
栏目列表
推荐内容