首页 > 编程 > C++ > 正文

[华为OJ--C++]006-质数因子

2019-11-08 18:35:34
字体:
来源:转载
供稿:网友

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

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

输出描述:按照从小到大的顺序输出它的所有质数的因子,以空格隔开

输入例子:180

输出例子:2 2 3 3 5

算法实现:

#include<iostream>#include<vector>using namespace std;/************************************************  * Author: 赵志乾  * Date: 2017-2-16   * Declaration: All Rigths Reserved !!!  ***********************************************/ bool PRime(long a){	if(a<=1&&a>=0)		return false;	for(int i=2; i*i<a;i++)	{		if(a%i==0)			return false;	}	return true;}int main(){	long indata;	cin>>indata;	vector<long>ret;	for(int i=2;i<=indata;i++)	{		if(prime(i))		{			while(indata%i==0)			{				ret.push_back(i);				indata=indata/i;			}		}	}		for(int i=0;i<ret.size()-1;i++)	{		cout<<ret[i]<<' ';	}	cout<<ret[ret.size()-1]<<endl;	return 0;}

 


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选