题目大意:将一个大于1的自然数进行质因数分解,以“n=质因子乘积”的形式输出来。

题目描述

算术基本定理,又称为正整数的唯一分解定理,即:每个大于1的自然数均可写为质数的积,而且这些素因子按大小排列之后,写法仅有一种方式。

先给出一个大于1的自然数,请将其写成质因数乘积的形式,如:

6=2*3

12=2*2*3

25=5*5

37=37

……

输入

输入一个大于1的自然数

输出

输出质因数分解等式

样例输入

12345

样例输出

12345=3*5*823

解题思路

对于大于1的自然数n,其质因子从小打到可能是2、3、5、7……

我们可以从小到大枚举因子,发现一个因子i,就除以i,除到不能整除i为止,这样n就少了一种因子了。

如果这个因子是2,那么n除以多次2之后,后面就不会在找到4这种合数因子了。

因此,后面继续这样找因子,找到的都是质因子,不可能是合数因子:如果有合数因子,合数可以质因数分解,说明存在更小的因子,与从小到大枚举因子相矛盾。

最后需要注意的是,一个数的因子,一半小于等于√n,另外一半大于等于√n,为避免超时,我们只需要枚举前面小的一半;这样的话,可能会漏掉一个大的质因子,如21=3*7,i只会枚举到√21=4,7就不会枚举了;因此,如果最后n还大于1,那么剩下的n不能再分解必是一个较大的质因子。

时间复杂度是O(√n),虽然是嵌套循环,但内重循环只会让外重循环更快介绍,循环次数并不是乘积的关系。

程序实现

正整数的唯一分解定理 c语言,SSOJ2662正整数的唯一分解定理相关推荐

  1. 连续正整数的和思路c语言,将一个正整数表示为连续自然数的和(附C实现源码)(原创)...

    问题描述:将一个正整数表示为两个或这个两个以上的连续自然数的和.给定一个数,输出所有的可能的结果. 例如: 3=1+2; 9=4+5; 9=2+3+4; 解决方法: 对于给定的整数n,求解基本思路如下 ...

  2. C语言将正整数转换为字符串(附完整源码)

    C语言将正整数转换为字符串 C语言将正整数转换为字符串完整源码 C语言将正整数转换为字符串完整源码 #include <assert.h> #include <inttypes.h& ...

  3. 正整数 java_JAVA语言:正整数A+B(Java)PAT团体程序设计题解

    本文主要向大家介绍了JAVA语言:正整数A+B(Java)PAT团体程序设计题解,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 本题的目标很简单,就是求两个正整数A和B的和,其中A和 ...

  4. c语言怎么判断素数 n 2,C语言判断正整数n(n2)是否是素数

    C语言判断正整数n(n>2)是否是素数 答案:3  信息版本:手机版 解决时间 2019-10-06 13:12 已解决 2019-10-05 20:25 素数:除了1和它自身,没有其他因子 最 ...

  5. c语言 临时文件作用,c语言函数mktemp()产生唯一临时文件名实例源码介绍

    c语言函数mktemp()产生唯一临时文件名实例源码介绍.有关的函数:tmpfile引入的头文件:#include 定义函数mktemp():char * mktemp(char * template ...

  6. 从键盘输入一个正整数(不多于5位),计算该正整数与789之和(记为sum)

    [问题描述]按程序功能要求编写程序. (1)从键盘输入一个正整数(不多于5位),计算该正整数与789之和(记为sum): (2)将整数sum各个位拆分到数组a中: (3)数组a从小到大排序: (4)将 ...

  7. 唯一的超级语言,前进的步伐不可阻挡

    唯一的超级语言,前进的步伐不可阻挡 XINXINCHEN403 2018-05-19 09:27:42 计算机技术的演进 从1946年第一台计算机诞生,成指数型生成,对现在的生活起到翻天覆地的改变 计 ...

  8. 任意给定一个正整数N,求一个最小的正整数M(M1),使得N*M的十进制表示形式里只含有1和0。...

    题目:任意给定一个正整数N,求一个最小的正整数M(M>1),使得N*M的十进制表示形式里只含有1和0. 解法一:暴力求解.从1开始查找M,然后判断M*N=X这个数字是否只含有0,1. 解法二:由 ...

  9. mysql 唯一约束 多字段_mysql多字段唯一约束

    MySQL唯一约束(Unique Key)要求该列唯一,允许为空,但只能出现一个空值.唯一约束可以确保一列或者几列不出现重复值. 在创建表时设置唯一约束 在定义完列之后直接使用 UNIQUE 关键字指 ...

最新文章

  1. C语言:constkeyword、结构体
  2. android notification点击无效,Notification.addAction在Android O中无效
  3. hmaster和datanaode启动后很快停止_Oracle RAC自启动
  4. php require_once
  5. Python实现局域网(Socket)通信
  6. Office Word界面和页面字体模糊不清的解决方案
  7. 计算机二级和英语四六级是同一个账号吗,英语四六级考试和计算机考试的登录账号和密码一样吗?我好像混了,但是密码一直输不对,...
  8. rust火箭基地主楼开启方法_Rust 为什么能成为 Stack Overflow 最受欢迎的语言?
  9. pom.xml中pom全称_摆脱pom XML…几乎
  10. java静态类和非静态类的区别_Java中静态内部类和非静态内部类到底有什么区别?...
  11. 语言三做一年级算题_一年级数学期末考试,学生交卷说能考100分,快让你家孩子试试吧...
  12. Linux学习之云服务器搭建嵌入式Linux开发环境
  13. 【Python】蟒蛇绘制(三种方式+import用法)
  14. @EnableAsync annotation metadata was not injected
  15. idea使用svn拉取项目代码_使用 IDEA 搭建 Hadoop3.1.1 项目
  16. 知识也许是先人留给后辈最大的财富
  17. 竞价推广账户日常优化需要注意十大要点
  18. matlab 计算函数极值,如何用MATLAB求函数的极值点和最大值
  19. 国产某偶像剧天才程序员爱心C语言作业用C++写的代码,结果是Py脚本文件
  20. spring4开发SpringBatch 样例 -配置文件版

热门文章

  1. 也谈PostgreSQL的Vacuum机制及其最佳实践
  2. 使用MRS CDL实现实时数据同步的极致性能
  3. 华为云数据库内核专家为您揭秘:GaussDB(for MySQL)并行查询有多快?
  4. 架构的变迁,从分层架构先聊起
  5. Scrum指南这么改,我看要完蛋!
  6. 【华为云技术分享】【论文阅读】增量学习近期进展及未来趋势预测
  7. 漫谈边缘计算(四):赢家是软还是硬
  8. 华为云车联网解决方案
  9. activate-power-mode,让你在Python编码中,感受炫酷的书写特效!
  10. 补习系列-springboot-使用assembly进行项目打包