//编程将一个整数分解成一个质因数的连乘积,并打印在屏幕上
//***本题的难点是既要找出质因数,又要保证其连乘为该数
//***需要两个循环,外循环与内循环

/*每个合数 都可以写成几个 质数 相乘的形式,这几个质数就都叫做这个合数的质 因数 。 如果一个质数是某个数的因数,那么就说这个质数是这个数的质因数。而这个因数一定是一个质数。
质因数 (或 质因子 )在数论里是指能整除给定正整数的质数。 两个没有共同质因子的正整数称为 互质 。因 为1没有质因子, 1 与任何正整数(包括1本身)都是互质 。 正整数的 因数分解 可将正整数表示为一连串的质因子相乘,质因子如重复可以 指数 表示。根据 算术基本定理 , 任何正整数皆有独一无二的质因子分解式。 只有一个质因子的正整数为质数。就是一个数的约数,并且是质数,比如8=2×2×2,2就是8的质因数。12=2×2×3,2和3就是12的质因数。把一个式子以12=2×2×3的形式表示,叫做分解质因数。16=2×2×2×2,2就是16的质因数, 把一个 合数 写成几个质数相乘的形式表示,这也是 分解 质因数 。分解质因数的方法是先用一个合数的最小质因数去除这个合数,得出的数若是个质数,就写成这个合数相乘形式;若是一个合数就继续按原来的方法,直至最后是一个质数 。分解质因数的有两种表示方法,除了大家最常用知道的“短除分解法”之外,还有一种方法就是“塔形分解法”。分解质因数对解决一些自然数和乘积的问题有很大的帮助,同时又为求最大公约数和最小公倍数做了重要的铺垫。

计算方法
短除法
求一个数分解质因数,要从最小的质数除起,一直除到结果为质数为止。分解质因数的算式的叫 短除法 ,和除法的性质差不多,还可以用来求多个个数的 公因式 :求最大公因数的一种方法,也可用来求最小公倍数。求几个数最大 公因数 的方法,开始时用观察比较的方法,即:先把每个数的因数找出来,然后再找出公因数,最后在公因数中找出最大公因数。12与18都可以分成几种形式不同的乘积,但分成质因数连乘积就只有以上一种,而且不能再分解了。所分出的质因数无疑都能整除原数,因此这些质因数也都是原数的约数。从分解的结果看,12与18都有公约数2和3,而它们的乘积2×3=6,就是 12与18的最大公约数。采用分解质因数的方法,也是采用短除的形式,只不过是分别短除,然后再找公约数和最大公约数。如果把这两个数合在一起短除,则更容易找出公约数和最大公约数。从短除中不难看出,12与18都有公约数2和3,它们的乘积2×3=6就是12与18的最大公约数。与前边分别分解质因数相比较,可以发现:不仅结果相同,而且短除法竖式左边就是这两个数的公共质因数,而两个数的最大公约数,就是这两个数的公共质因数的连乘积。实际应用中,是把需要计算的两个或多个数放置在一起,进行短除。在计算多个数的最小公倍数时,对其中任意两个数存在的约数都要算出,其它无此约数的数则原样落下。最后把所有约数和最终剩下无法约分的数连乘即得到最小公倍数。
John M. Pollard提出了第二种因数分解的方法,Pollard Rho快速因数分解。该算法时间复杂度为O(n^(1/4))。

分解质因数代码:
将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:  
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n, 
重复执行第一步。 
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。*/

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
int main()
{int a;int i;printf("a=");scanf("%d", &a);printf("%d=", a);if (a == 0||a==1){exit(0);//0,1没有质因数,如果该数为0,则安全退出}if (a < 0){printf("-1");}else{printf("1");}for (i = 2; i < a / 2; i++){while (a % i == 0){printf("*%d", i);a = a / i;}}if (a != 1){printf("*%d", a);}printf("\n");
}

编程将一个整数分解成一个质因数的连乘积,并打印在屏幕上相关推荐

  1. 分解 python_面试官:如何用Python实现将一个整数分解成质因数?

    概述 今天主要分享一个关于分解质因数的实例,判断的逻辑稍微多了点,一起来看看吧~ 需求 将一个整数分解质因数.例如:输入90,打印出90=233*5 思路 其实根本不需要判断是否是质数,从2开始向数本 ...

  2. python中如何将一个数字分解成一个列表

    将数字分解成列表 问题如下 写一个函数get_digits(n),将参数n分解出每个位的数字并按顺序存放到列表中.举例:get_digits(12345) ==> [1, 2, 3, 4, 5] ...

  3. 将一个整数分解为质数的乘积

    题目:将一个整数分解为质数的乘积 (质数就是除了1和它本身之外,再也没有整数能被它整除的数.比如:2..3.5.7.11.13.17.19.23.39.31---------- 素数就是质数.质数之外 ...

  4. python分段函数输入x的值求y的值_C语言编程题 有一分段函数如下,要求用scanf函数输入整数x的值,求y值并在屏幕上输出。有分段函数如下,编程实现输入整...

    C语言编程题 有一分段函数如下,要求用scanf函数输入整数x的值,求y值并在屏幕上输出. 有分段函数如下,编程实现输入整 www.zhiqu.org 时间: 2020-11-22 #include ...

  5. php分解质因数,用PHP如何实现将一个整数分解为质因数的积?

    先对数字进行因式分解算法 再过滤结果集中,不符合的结果集. class Helper { public function chechPrime($num) { for ($i = floor(sqrt ...

  6. 将一个整数分解为质数的乘积的实现方式

    今天参加应聘笔试遇到这道题,有点意思,当时一时没有写完整,回来稍作整理了一下: public class Demo { public static void main(String[] args) { ...

  7. 伸缩门遥控器c语言程序,急求求c++编程高手,求50的阶乘,要求结果是精确的整数,打印在屏幕上。...

    满意答案 #include using namespace std; class CJich { public: CJich(int t):n(t) {} void show(); private: ...

  8. 整数n分解成素数乘积c语言,用C语言和汇编语言实现将1个整数分解成几个素数的乘积...

    任何1个大于2的整数都可以分解成几个素数的乘积.将1个整数分解成几个素数的乘积是个热门话题. 经常有人问到.本文试图用C语言和32位X86汇编语言给出一个比较好的实现.希望对c语言学习者和 汇编语言学 ...

  9. python对整数进行因数分解_浅谈将一个正整数分解质因数的逻辑思维和Python开发设计...

    今天讨论的是如何将一个正整数分解质因数.例如:输入36,打印出36=2*2*3*3. 1.首先要清晰两个概念,要知道什么是质数,如何进行分解质因数?质数是指在大于1的自然数中,除了1和它本身以外不再有 ...

最新文章

  1. Android4.2.2中对安全性的改进
  2. Apache https服务器配置笔记
  3. Most socially-distanced subsequence CodeForces - 1364B(贪心)
  4. ORACLE EXP/IMP 说明
  5. 19.jsp生命周期
  6. 供应链 信用管理 大数据_智慧供应链大数据技术架构方案(ppt)
  7. PyQt5学习笔记06----Qt Designer自定义信号emit及传参
  8. Java NIO - Buffer 基础 -1
  9. 卡尔曼滤波估matlab算法,INS-matlab 利用卡尔曼滤波算法估计惯导系统状态量的源代码~谢谢分享 - 下载 - 搜珍网...
  10. 数学中最神奇的常数-无理数e的由来
  11. elasticsearch7.5.0 集群搭建
  12. 苹果删除照片不释放内存_原来苹果手机这样清理内存,可以释放大量空间,真是太好用了...
  13. crossover程序错误_如何使用Crossover在Linux上安装Windows应用程序
  14. python @property 解释
  15. 安装使用完虚拟机UltraISO后,删除电脑中多出的“CD驱动器”盘符
  16. 计算机在表格顶端添加标题,电脑Excel表格在打印时怎么设置每页有相同的顶端标题和底端标题...
  17. Windows Server 2016 基本设置
  18. iOS10会带来哪些新变化?
  19. 旅游网站管理系统简易版 php开源,基于Laravel框架开发的旅游网站管理系统PHP源码...
  20. stm32毕设分享 自动售货机设计与实现(源码+硬件+论文)

热门文章

  1. GPS坐标显示在百度地图上(Qt+百度地图)
  2. 如何制作路演PPT?
  3. 批量ping检测主机
  4. 多线程编写12306售票系统
  5. MyBatis日期用法技巧
  6. 第6.3章:ARM架构下手动编译StarRocks(拓展篇)
  7. as3压缩解压缩的第三方包及实现DEMO
  8. C语言在一个数组中查找一个数字
  9. JAVA-GetDay
  10. APP如何在应用商店获取较高的排名?