当前位置: 首页 > article >正文

C语言:判断一个数是否为素数(3种方法,含注释)

首先要先明白素数的定义:除了1和本身之外,没有其他的因数的数,即不能被其他数整除。

同时要注意,1不是素数。

以下为判断素数的3个代码:

1.要注意给m赋初值是不能为1,因为1是任何数的因数,可以被任何数整除。若初值为1,则第一步就结束循环,所有的数输出结果均为不是素数(1除外),无法起到判断作用。

#include<stdio.h>
int main()
{int i, m;printf("请输入一个大于一的整数:");scanf("%d", &i);for (m = 2; m <= i; m++)if (i % m == 0)//当2-m之间遇到因数时,结束循环break;if (m == i)//如果遇到的因数就是它本身,是素数printf("%d是素数", i);elseprintf("%d不是素数", i);return 0;}

2.此代码中,count的作用是计算这个数的因数个数,如果是2,即只有1和本身,是素数。

#include<stdio.h>
int main()
{int i, m;int count = 0;printf("请输入一个大于1的整数:\n");scanf("%d", &i);for (m = 1; m <= i; m++){if (i % m == 0)//统计要判断的数的因数个数count++;}if (count == 2)//如果只有2个因数printf("%d是素数", i);elseprintf("%d不是素数", i);return 0;}

3.此代码中引用了求平方根sqrt函数,所以要引用math.h;对半取,可以节省空间。

#include<stdio.h>
#include<math.h>//求平方根需要引用
int main()
{int n, m, i;//定义需要用到的变量printf("请输入一个大于1的正整数:");scanf("%d", &n);//输入要判断的数m = sqrt(n);//求输入数的平方根for (i = 2; i <= m; i++)//取2-m之间的每一个整数if (n % i == 0)//判断能否整除nbreak;//非素数,跳出循环if (i > m)printf("%d是素数!\n", n);//循环正常结束,是素数elseprintf("%d不是素数!\n", n);//循环中途退出,不是素数return 0;
}
http://www.lryc.cn/news/2420648.html

相关文章:

  • [转贴]Symbian开发入门 - 工具
  • Meta Network||论文笔记
  • ssm+jsp计算机毕业设计大连东软人才培训中心oa系统tc617(程序+LW+源码+远程部署)
  • ★★★安博.牛耳嵌入式课程介绍★★★
  • Win11系统提示找不到jscript9Legacy.dll文件的解决办法
  • java中常用算法算法
  • AspNet MVC过滤器+实例
  • 【HTML基础-3】iframe框架详解及应用案例—实现页面嵌套
  • android获取外部sd卡路径,如何区分android中的内部和外部SD卡路径
  • 基于php+vue购物商城系统python-flask-django-nodejs
  • 在windows 本机 搭建 FTP 保姆保姆级教学
  • FMR-31模拟信号采集模块实现实时数据采集与处理
  • Nexus()下载与安装详解
  • weblogic的安装和配置
  • 单点登录(SSO)-- 实现单点登录的几种方式
  • 什么是单点登录?如何实现?
  • 基于STC12单片机恒温箱温度控制系统设计
  • Linux 内核模块编程
  • PGP加密,良好隐私密码法
  • 使用java语言编写一个简易的计算器(完整代码与详细步骤都有哦!)
  • 手把手教你实现Gitlab远程备份(超详细,图文并茂)
  • 基于Java+Jsp+Ssm+Mysql实现的Java Web家庭理财消费支出收支管理系统设计与实现
  • 为什么家中照明用LED灯越来越不耐用?
  • 多功能聊天软件的设计与开发——音频视频聊天模块
  • java汽车维修管理系统(开题+源码)
  • 92条 SVN命令
  • 史上最全免费收录网站搜索引擎登录口(经典)
  • 12个国外稳定无限量免费网盘
  • plsql 存储过程 批量提交_浅谈PetShop之使用存储过程与PLSQL批量处理(附案例)
  • html5 右侧客服代码,简洁右侧栏客服代码