分解质因数模板 知识点:试除法分解质因数

169 阅读1分钟

867. 分解质因数 - AcWing题库

image.png

如何分解质因数的?

首先 任何一个合数是可以都分解成多个质数相乘的,如14可以分解为2 * 7其中2和7都是质数,再然后 24可以分解为 24= 2 * 2 * 2* 3

_可以发现一个规律就是如果一个数字从2开始进行整除 _即做如下操作 i=2(24/2=12;12/2=6; 6/2=3; 3/2结果不为一个整数 i++;3/3=1; 发现得到了两个质数,这两个质数就叫做质因数按照这个规律就可以得到关于质因数的方法;

#include<bits/stdc++.h>
using namespace std;

void divide(int n)
{
    for(int i=2;i*i<=n;i++)
    {
        int s=0;
        if(n%i==0)  //如果成立,i一定是素数
        {
            while(n%i==0)  //判断n能被i除尽几次
            {
                n/=i;
                s++;  //指数
            }
            
            cout<<i<<" "<<s<<endl;  //输出质因子的底数和指数 
        }
    }
        if(n>1)//还剩1个大于根号n的因子
        {
            cout<<n<<" "<<1<<endl;  //输出最后一个大于sqrt(n)的质因子的底数和指数 
        }
        cout<<endl;
}
int  main()
{
    int n;cin>>n;
    
    while(n--)
    {
        int x;cin>>x;
        divide(x);
    }
    return 0;
}

image.png