您的位置:首页 > 其它

【华为oj】质数因子

2015-06-21 21:30 267 查看
问题描述:功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )

详细描述:

函数接口说明:

public String getResult(long ulDataInput)

输入参数:

long ulDataInput:输入的正整数

返回值:

String

知识点: 排序

题目来源: 内部整理

练习阶段: 初级

运行时间限制: 10Sec

内存限制: 128MByte

输入:

输入一个long型整数

输出:

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



样例输入: 180

样例输出: 2 2 3 3 5

问题分析:求一个整数(A)的质数因子,采用循环时,首先要判断除数是否为质数,是质数并且可以被A整除才是一个质数因子。

代码:

#include <iostream>

using namespace std;

bool isornot(int n);

int main()
{
	int num;
	cin>>num;
	int i=2;
	for(i=2;num!=1;++i)
	{
		if(isornot(i)&&(num%i==0))
		{
			cout<<i<<" ";
			num=num/i;
			i=1;
		}
	}
	return 0;
}
bool isornot(int n)//质数检测
{
	int count=0;
	int i=1;
	for(i=1;i<n/2+1;++i)
	{

		if(n%i==0)
			++count;
	}
		if(count==1)
			return true;
		else
			return false;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: