质因数分解-2
任何一个合数都可以写成几个质数相乘的形式。其中每个质数都是这个合数的因数,叫做这个合数的分解质因数。分解质因数只针对合数。求一个数分解质因数要从最小的质数除起一直除到结果为质数为止。
从键盘任意输入一个整数m,若m不是素数,则对m进行质因数分解,并将m以质因数从小到大顺序排列的乘积形式输出,否则,输出”It is a prime number!"。
例如:用户输入90,则输出90=233*5;用户输入17,则输出“It is a prime number!"。
#include <iostream>
#include <cmath>
using namespace std;
int IsPrime(int x);
void DecomPrimeFactor(int m);
int main(void)
{
int m;
cin>>m;
if(!IsPrime(m))
DecomPrimeFactor(m);
else
cout<<"It is a prime number!"<<endl;
return 0;
}
int IsPrime(int x)
{
int i;
if (x <= 1) return 0;
for (i=2; i<=sqrt(x); i++)
{
if (x%i == 0) return 0;
}
return 1;
}
void DecomPrimeFactor(int m)
{
cout<<m<<"=";
int i=2;
do
{
if(IsPrime(i)&&m%i==0)
{
cout<<i<<"*";
m=m/i;
}
else
i++;
}while(!IsPrime(m));
cout<<m<<endl;
return;
}