C++分解质因数代码实现

发布时间 2023-12-03 21:59:50作者: Tomhard

一、问题描述:

什么叫做分解质因数?就是我们给定一个数字,把这个数字的是质数的因子按照从小到大的顺序排列出来,并输出每个质因子的个数。

二、实现思路:

就是我们从1~n/i这个范围内(i*i=n),如果找到了一个因子,使得n%i==0,那么我们就进一步除下去,直到无法满足n%i==0为止。这个时候,i一定是质因子。然后每次统计一下。输出出来。

三、代码实现:

#include<iostream>
#include<algorithm>

using namespace std;
int n;

void prime(int a){
    for(int i=2;i<=a/i;i++){
        if(a%i==0){
            int s=0;
            while (a%i==0)
            {
                a/=i;
                s++;
            }
            printf("%d %d\n",i,s);
        }
    }
    if(a>1) printf("%d %d\n",a,1);
    
    puts("");
}
int main(){
    cin>>n;
    prime(n);
    return 0;
}