华为机试-质数因子

喜夏-厌秋 提交于 2019-11-30 12:00:29

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

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

详细描述:

函数接口说明:

public String getResult(long ulDataInput)

输入参数:

long ulDataInput:输入的正整数

返回值:

String

输入描述:
输入一个long型整数

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

示例1
输入

180

输出

#include <iostream>#include <math.h>#include <vector>using namespace std;long n;vector<int> vec;bool prime = true;int r=2;int isPrimer(long n){    if(n==2)        return 1;    if(n%2==0)        return 0;    for(int i=3;i<sqrt(n);i++)    {        if(n%i==0)            return 1;    }}int main(){    cin>>n;    if(n == 2||n==3)        vec.push_back(n);    else        while(n>2)            if(n%r==0)                if(prime)                {                       n=n/r;                    vec.push_back(r);                }                 else                    prime=isPrimer(r);            else                r+=1;    for(int j=0;j<vec.size();j++)    {        cout<<vec[j]<<" ";    }}

来源:https://blog.csdn.net/k_atherine/article/details/101349767

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!