算法笔记(c++)--求一个数的所有质数因子
算法笔记(c++)--求一个数的所有质数因子
先贴题目:


这题不难,恶心在理解上面。最后看评论知道了怎么回事:
2*2*3*3*5=180
按照这逻辑的话应该输入的数由一系列质数相乘出来,所以每次找到一个质数就要更新下输入数.。
问题1:
没问题的话一瞬间都是这么想的。更新后重新来一遍for。重新探索一遍质数。但是仔细想想,题目要求从小到大,能2*3*2就一定能2*2*3,不如每次找到一个质数因子的时候,循环更新输入数。
解决如下
while(num%质数因子==0)
num=num/质数因子.
问题2:
比如10我们计算用for( 2 to sqrt num)过程就是这样 2-num=5. 5无法再没有(2, sqrt(num)】内的质数因子了.就直接退出了。
所以我们最后判断假如num最后大于1--如果1的话说明已经结束了
大于1就把num再次输出.
按照我们的逻辑来随便看个数字比如99
首先3-num=33
然后3-num=11
然后11-num=1
=>3 3 11没毛病
算法笔记(c++)--求一个数的所有质数因子的更多相关文章
- POJ 1845 Sumdiv (求某个数的所有正因子的和)
题意: 求A^B的所有正因子的和,最后模9901的结果. 思路: 若对一个数n进行素数分解,n=p1^a1*p2^a2*p3^a3*...*pk^ak那么n的所有正因子之和sum=(1+p1+...+ ...
- 算法笔记_042:求最小公倍数(Java)
目录 1 问题描述 2 解决方案 1 问题描述 何为最小公倍数?能同时被数字m和数字n整除的最小整数.例如,24和60的最小公倍数等于120.下面请编写相关函数实现求取数字m和n的最小公倍数. 2 ...
- 求两个数之间的质数 -----------基于for循环 算法思想
前端代码: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.as ...
- [算法]浅谈求n范围以内的质数(素数)
汗颜,数学符号表达今天才学会呀-_-# 下面是百度百科对质数的定义 质数(prime number)又称素数,有无限个. 质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数. 求质数的方法 ...
- HDU 2136 素数打表+求质数因子
Largest prime factor Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ...
- Zoj 3529 A Game Between Alice and Bob 数论+博弈Nim 快速求数中有多少个素数因子
本题涉及博弈论中的Nim游戏博弈. Nim游戏博弈详解链接: http://www.cnblogs.com/exponent/articles/2141477.html 本题解题报告详解链接: htt ...
- poj 1523Tarjan算法的含义——求取割点可以分出的连通分量的个数
poj 1523Tarjan算法的含义——求取割点可以分出的连通分量的个数 题目大意:如题目所示 给你一些关系图——连通图,想要问你有没有个节点,损坏后,可以生成几个互相独立的网络(也就是连通分量), ...
- 算法笔记_041:寻找和为定值的多个数(Java)
目录 1 问题描述 2 解决方案 1 问题描述 输入两个整数n和sum,要求从数列1,2,3,...,n中随意取出几个数,使得它们的和等于sum,请将其中所有可能的组合列出来. 2 解决方案 上述问题 ...
- 求两个数的最大公约数(Euclid算法)
求两个数 p 和 q 的最大公约数(greatest common divisor,gcd),利用性质 如果 p > q, p 和 q 的最大公约数 = q 和 (p % q)的最大公约数. 证 ...
随机推荐
- ODI使用流程
---恢复内容开始--- ODI流程 Topology 1.建立 源 物理结构体系 2.建立 目的 物理结构体系 步骤同上 3.建立 源 逻辑架构 4.建立 目的 逻辑架构 步骤同上 Designer ...
- ES module 实现方式
随着js社区不断发展,js功能更加强大,细数js的几种 module 方式. 整理了七种模块化方式 1.作为新手,练习小的demo,比较喜欢的方式.不适合大的项目. <!--html--> ...
- Spring boot 零配置开发微服务
2018年12月29日星期六 体验Spring boot 零配置开发微服务 1.为什么要用Spring boot? 1.1 简单方便.配置少.整合了大多数框架 1.2 适用于微服务搭建,搭建的微服务 ...
- async函数结合promise的小案例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- WebSocket 客户端实例
Node.js var ws = require("ws"); var socket = new ws("ws://127.0.0.1:8001); var socket ...
- 【原创】CRM 2015/2016,SSRS 生成PDF文件,幷以附件的形式发送邮件
主要步骤如下: 生成一条邮件记录 生成一条ActivityParty记录 生成PDF文件,并以Base64添加到ActivityMimeAttachment 中去 打开发送邮件窗口,以便编辑及发送邮件 ...
- linux-2.6.22.6内核启动分析之head.S引导段代码
学习目标: 了解arch/arm/kernel/head.S作为内核启动的第一个文件所实现的功能! 前面通过对内核Makefile的分析,可以知道arch/arm/kernel/head.S是内核启动 ...
- numpy.random.shuffle()与numpy.random.permutation()的区别
参考API:https://docs.scipy.org/doc/numpy/reference/routines.random.html 1. numpy.random.shuffle() AP ...
- Jquery 批量操作标签属性
$("[id*='Custom']").removeAttr("disabled")
- linux——nginx的安装及配置
目录 1. 在Linux上安装nginx 2. 配置nginx反向代理 1. 在Linux上安装ngix 1.1 在以下网页下载nginx的tar包,并将其传到linux中 http://nginx. ...