C语言素数因子思路,完美解决质因子(素数+因数)(C语言代码)
测试环境:
Windows 10 China Huawei Source Insight 4.0
Linux Debain Ubuntu/Kali g++
程序代码:
多组测试:
解题思路:
质因数即质数+因数。质数又叫素数。
判断因数很简单,如果i 是n的因数,则n%i==0.
所以重点就是判断素数!
推荐以下经典素数好文:
假如i是素数,则i不能整除2~i之间的所有数,定义一个变量j,取 2~i之间所有值。如果中间的数都不能除尽,
那么一起循环到最后一次j变成i时,i%j==i%i==0 这个时候i==j ,i就一定是素数。如果在j=0~i的循环中途
就出现i%j==0,说明i一定不是素数.
代码分析:
第一次循环:
for(int i=1; i<=n; i++) 为遍历1~n之间所有的数
第二次循环:
for(int j=2; j<=i; j++)
j取2~i之间,如果一个数i 对于2~i之间所有的数都不能整除,则i是素数。
即如果i % j!=0则i是素数。
我采用的方法是穷举反证:
如果i%j!=0素数,那么当循环结束的时候i==j,i%j==i%i==0。则i是素数
再判断 n%i ==0 知i又是因子
如果i%j==0 &&i !=j 说明在循环的过程中,出现了整除情况,说明i不是素数,跳出即可。
注意事项:
参考代码:#include
int main()
{
int n;
scanf("%d",&n);
for(int i=1; i<=n; i++) //遍历1~n
{
for(int j=2; j<=i; j++)
{
if(i%j==0&&i==j&&n%i==0)
{
printf("%d ",i);
}
else if(i%j==0&&i!=j)
{
break;
}
}
}
}
C语言素数因子思路,完美解决质因子(素数+因数)(C语言代码)相关推荐
- c语言溢出该怎么算,解决整数运算溢出方法——C语言
嗨,大家好,这是我的第二篇博文,欢迎来踩 ,留在你们的小脚印呀! 正如大家所知,在C语言中整型变量用4个字节表示,表示范围略大于2乘以10的9次方,而长整型用8位表示,表示范围略小于2乘以10 的19 ...
- c语言写程序思路考研题,快速解题 | 在考场C语言编程题
原标题:快速解题 | 在考场C语言编程题 对于考<C语言程序设计>的小伙伴们来说,程序设计题是很多同学觉得相对较难的一个版块.其题目虽然不算多,但在考研150分的试卷中,却占据了较大的比重 ...
- 计算机无法解决打印所有素数原因,计算机无法解决“打印所有素数”的问题,其原因是解决该问题的算法违背了算法的()特性。...
摘要: 计算机无决打解决何管哮支气作时药如危重度或度发的用喘重.下列当中伤害,印所有素因性伤害的机械属于是(.缓慢支管启应路开,数的算法并时变化.温力.流量度的察压刻观,向调报度汇随时,循环和供.回支 ...
- C语言科学计算器思路,大神教你如何用C语言实现科学计算器
i++; *len=i; return temp; } /*功能:翻译操作数 * 如果运算符非法,则返回0,合法则返回非零标志 */ int translateopt(char *p,int *len ...
- c语言 串口连读,完美发音进阶课-连读技巧(示例代码)
配套视频: 教学视频 辅音对元音的连读 什么是元音,辅音? 元音:气流在发出的过程当中,声带振动,口型相对固定,气流冲口而出,饱满而又洪亮.相当于韵母. 例如:[i:].[i].[?:].[?].[u ...
- 完美解决cx_oracle连接us7ascii字符集数据库
本文章主要解决cx_oracle连接us7ascii字符集数据库的问题,水平有限,还望海涵,如有问题欢迎留言 前言 直接上代码 前言 使用python连接oracle数据库的时候常用cx_oracle ...
- 最大质因子递归解法python
最大质因子的递归解法&Python: 问题描述: 求一个任意正整数的最大质因子,呈上代码及注释: # 最大质因子 def calc(x:int)->int:# 函数参数类型设置以及返回值 ...
- `Computer-Algorithm` 数论基础知识 (同余,取模,快速幂,质数,互质,约数,质因子)
catalog 同余 取模 快速幂 质数 互质 约数 质因子 @Delimiter(旧解释) 经验谈 两数之差也整除 加一的特殊性 取模 累加的周期性 取模的唯一集合 取模下的四则运算 除法的不可约性 ...
- PAT甲级1059 Prime Factors :[C++题解]分解质因子
文章目录 题目分析 题目链接 题目分析 暴力求质因数 下面i就是质因子,s是质因子i的阶数. 暴力的时间复杂度O(n),会超时 void divide(int n){for(int i=2;i< ...
最新文章
- 进程(process)和线程
- javascript中的this
- IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)
- vue 发送ajax请求
- 移动web前端开发框架_移动前端开发是Web前端开发吗?
- http 路径 |_HTTP 请求與响应的格式及 curl 命令使用
- android ProgressBar实现扫描SD卡文件 + SimpleAdapter绑定ListView
- 【Quartz】插件的使用
- python爬取百度域名注册_python爬取百度域名_python爬取百度搜索結果url匯總
- 计算机网络转本文科,江苏专转本计算机经验总结
- macbook pro touch bar卡死的解决方法
- 2018年《DevOps 现状报告》新鲜出炉:行业脉动与团队发展指导一览
- SpringBoot中对于异常处理的提供的五种处理方式
- 解决vi/vim中粘贴会在行首多很多缩进和空格的问题
- PowerDesigner16.5下载和安装教程
- Python和C语言运行速度对比(累加1亿次)
- Vue3中Compositions API的使用(二)
- gprs java_GPRS类型一览
- Unity (游戏引擎)
- get/post/put/delete请求头说明