分解质因数---输出一个数的所有质数因子

简介: 分解质因数---输出一个数的所有质数因子

输入一个数字,输出它的所有质数因子。

#include <iostream>
#include <cmath>
#include <sstream>
using namespace std;
//判断一个数是质数:如果用0~n^0.5去除,均无法整除,则为质数
int isPrime(int inputdata)
{
    int flag = 1;
    for(int i = 2; i < sqrt(inputdata); i++)
    {
        if(inputdata % i == 0)
        {
           flag = 0;//inputdata不是质数
           break;
        }
    }
    return flag;
}
//分解质因数
void primeFactor(int indata)
{
    int ret = isPrime(indata);
    if(ret == 1)
    {
        cout << indata << " ";
    }
    else{
        for(int i = 2; i < indata; i++)
        {
            if(indata % i == 0)
            {
                //第一个数一定是质因数
                cout << i << " ";
                primeFactor(indata / i);
                break;
            }
        }
    }
}
int main()
{
    int indata;
    cin >> indata;
    primeFactor(indata);
    return 0;
}


相关文章
|
6月前
|
算法
给定两个数,求这两个数的最大公约数
给定两个数,求这两个数的最大公约数
|
6月前
|
Python
如何判断一个数是质数? 要求:编写一个Python函数,输入一个整数,输出该整数是否为质数。质数是指大于1的自然数中,除了1和它本身以外不再有其他因数的数。
如何判断一个数是质数? 要求:编写一个Python函数,输入一个整数,输出该整数是否为质数。质数是指大于1的自然数中,除了1和它本身以外不再有其他因数的数。
344 1
|
6月前
26.一个正整数如果恰好等于它的因子之和,这个数称为“完数”,如6=1+2+3,求1000以内所有的完数.
26.一个正整数如果恰好等于它的因子之和,这个数称为“完数”,如6=1+2+3,求1000以内所有的完数.
64 0
|
6月前
|
算法 测试技术 C#
【最大公约数 调和级数】2183.统计可以被 K 整除的下标对数目
【最大公约数 调和级数】2183.统计可以被 K 整除的下标对数目
|
程序员
【牛客网】HJ99 自守数、OR86 返回小于 N 的质数个数
目录 HJ99 自守数 OR86 返回小于 N 的质数个数
83 0
判断10-105之间有多少个素数,并输出所有素数。【素数又称为质数,定义为在大于1的 自然数中,除了1和它本身以外不再有其他因数的数
判断10-105之间有多少个素数,并输出所有素数。【素数又称为质数,定义为在大于1的 自然数中,除了1和它本身以外不再有其他因数的数
101 0
一个数如果恰好等于它的因子之和,这个数就称为“完数“。例如6=1+2+3.编程找出1000以内的所有完数
一个数如果恰好等于它的因子之和,这个数就称为“完数“。例如6=1+2+3.编程找出1000以内的所有完数
718 0
一个数如果恰好等于它的因子之和,这个数就称为“完数“。例如6=1+2+3.编程找出1000以内的所有完数
遇7避过(输出1~100内的安全数,安全数不能带有7,不能被7整除
遇7避过(输出1~100内的安全数,安全数不能带有7,不能被7整除
65 0
每日一题---输出100个1~6的随机整数,并求出每个数出现的概率
每日一题---输出100个1~6的随机整数,并求出每个数出现的概率
每日一题---输出100个1~6的随机整数,并求出每个数出现的概率
7-2 输出约数 (9 分)
7-2 输出约数 (9 分)
110 0