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

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

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

#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;
}


相关文章
|
7月前
|
算法
给定两个数,求这两个数的最大公约数
给定两个数,求这两个数的最大公约数
|
7月前
|
Python
如何判断一个数是质数? 要求:编写一个Python函数,输入一个整数,输出该整数是否为质数。质数是指大于1的自然数中,除了1和它本身以外不再有其他因数的数。
如何判断一个数是质数? 要求:编写一个Python函数,输入一个整数,输出该整数是否为质数。质数是指大于1的自然数中,除了1和它本身以外不再有其他因数的数。
372 1
|
7月前
26.一个正整数如果恰好等于它的因子之和,这个数称为“完数”,如6=1+2+3,求1000以内所有的完数.
26.一个正整数如果恰好等于它的因子之和,这个数称为“完数”,如6=1+2+3,求1000以内所有的完数.
73 0
|
7月前
10.输入一个数,求这个数的阶乘
10.输入一个数,求这个数的阶乘
34 0
|
程序员
【牛客网】HJ99 自守数、OR86 返回小于 N 的质数个数
目录 HJ99 自守数 OR86 返回小于 N 的质数个数
85 0
|
算法 Python
回文数中各位数和与输入数相同
回文数中各位数和与输入数相同
60 0
判断10-105之间有多少个素数,并输出所有素数。【素数又称为质数,定义为在大于1的 自然数中,除了1和它本身以外不再有其他因数的数
判断10-105之间有多少个素数,并输出所有素数。【素数又称为质数,定义为在大于1的 自然数中,除了1和它本身以外不再有其他因数的数
107 0
一个数如果恰好等于它的因子之和,这个数就称为“完数“。例如6=1+2+3.编程找出1000以内的所有完数
一个数如果恰好等于它的因子之和,这个数就称为“完数“。例如6=1+2+3.编程找出1000以内的所有完数
752 0
一个数如果恰好等于它的因子之和,这个数就称为“完数“。例如6=1+2+3.编程找出1000以内的所有完数
遇7避过(输出1~100内的安全数,安全数不能带有7,不能被7整除
遇7避过(输出1~100内的安全数,安全数不能带有7,不能被7整除
71 0
每日一题---输出100个1~6的随机整数,并求出每个数出现的概率
每日一题---输出100个1~6的随机整数,并求出每个数出现的概率
每日一题---输出100个1~6的随机整数,并求出每个数出现的概率