牛客网_华为机试_006_质数因子

来源:互联网 发布:汉诺塔问题c语言代码 编辑:程序博客网 时间:2024/06/06 18:38

题目描述

功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )

最后一个数后面也要有空格

详细描述:


函数接口说明:

public String getResult(long ulDataInput)

输入参数:

long ulDataInput:输入的正整数

返回值:

String




输入描述:

输入一个long型整数



输出描述:

按照从小到大的顺序输出它的所有质数的因子,以空格隔开。最后一个数后面也要有空格。

示例1

输入

180

输出

2 2 3 3 5

定理:任何一个大于1的自然数N,都可以唯一分解成有限个质数的乘积 N=(P_1^a1)*(P_2^a2)......(P_n^an) , 这里P_1<P_2<...<P_n是质数,其诸方幂 ai 是正整数这样的分解称为N 的标准分解式


思路:输入input,从n=2开始判断是否被n整除,如果可以整除则输出n,且input /= n, n--防止重复质因子,外层循环n++,循环条件n<=input


题目地址:https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607?tpId=37&tqId=21229&tPage=1&rp=&ru=/ta/huawei&qru=/ta/huawei/question-ranking


#include <iostream>using namespace std;int main(){long input;//cin >> input;while (cin >> input){for (int n = 2; n <= input; n++){if (input % n == 0){input /= n;cout << n << " ";n--;}}}return 0;}


原创粉丝点击