每个合数都可以写成几个质数相乘的形式,这几个质数就都叫做这个合数的质因数。如果一个质数是某个数的因数,那么就说这个质数是这个数的质因数。而这个因数一定是一个质数。
质因数分解算法:
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n不等于k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,
重复执行第一步。(就是一直除除到不能除为止)
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
int flag=0;//ans表示最后有几种素数
for(int i=1;prime[i]<=res/prime[i];i++){
while(res%prime[i]==0){
res/=prime[i];
flag=1;//cout<<prime[i]<<endl;
}
if(flag)
ans++;
flag=0;
}