一般地,对于一个大于1的非质数N,都可以分解成1~N之间质数相乘的形式,例如:
6=2*3;
30=2*3*5;
72=2*2*2*3*3;
......
特殊地,当N是质数时,则只能表示成N=1*N的形式。
6=2*3;
30=2*3*5;
72=2*2*2*3*3;
......
特殊地,当N是质数时,则只能表示成N=1*N的形式。
本文就该形式的分解,给出了分解质因数的C++源代码:
//分解质因数.cpp
//功能:将一个整数分解为多个质数相乘
//例子:480=2*2*2*2*3*5
//日期:2015/09/15
#include<iostream>
#include<cmath>
using namespace std;
//判断是否为质数
bool isPrime(int num)
{
if(num<2)
{
cout<<"Error!"<<endl;
return false;
}
if(num==2 || num==3)
return true;
int N=sqrt(num);
bool flag;
for(int k=2;k<=N;k++)
{
flag=1;
i