质因数分解

简介: 笔记

质因数分解


#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
#define ll long long
#define maxn 1005
using namespace std;
int p[maxn],c[maxn],tot;
void devide(int n){
    tot=0;
    for(int i=2;i<=sqrt(n);++i){
        if(n%i==0){
            ++tot;
            p[tot]=i;
            c[tot]=0;
            while(n%i==0){
                n/=i;
                ++c[tot];
            }
        }
    }
    if(n>1){
        ++tot;
        p[tot]=n;
        c[tot]=1;
    }
    return;
}
int main(){
    int n;
    scanf("%d",&n);
    devide(n);
    for(int i=1;i<=tot;++i){
        printf("%d %d\n",p[i],c[i]);
    }
    return 0;
}


欧拉筛版质因数分解


先进行欧拉筛 找出每个数的最小质因子7.png

//核心:n只会被最小质因子筛掉
int cnt; //素数的个数
int v[N]; //存每个数的最小质因子
int prime[N]; //存素数
void get_primes(int n){
    for(int i = 2;i <= n; ++i){
        if(v[i] == 0){
            v[i] = i;
      prime[++cnt] = i;
        }
        for(int j = 1 ; j <= cnt;++j){
            if(prime[j] > v[i] || i * prime[j] > n) break;
            v[prime[j] * i] = prime[j];
        }
    }
}
void divide(int n) {
    while (v[n]) {
        printf("%d ", v[n]); // 在前
        n /= v[n]; //在后
    }
}
目录
相关文章
|
8月前
|
人工智能 算法 BI
数学知识:质数与约数
数学知识:质数与约数
73 0
筛质数、分解质因数和快速幂的应用
筛质数、分解质因数和快速幂的应用
74 0
|
算法 C语言 C++
【数论】试除法判断质数,分解质因数,筛质数
将定义进行模拟,若整除了除1与其自身的另外的数,则为质数
146 0
数学问题之(矩阵加速递推快速幂)
数学问题之(矩阵加速递推快速幂)
|
机器学习/深度学习 人工智能
数学问题之(矩阵快速幂)
数学问题之(矩阵快速幂)
101 0
|
Python
Python实现求取素数
Python实现求取素数
248 0
|
机器学习/深度学习 人工智能
数学知识-质数
数学知识-质数
|
算法
斐波那契数列两种算法和青蛙跳台阶的两种实际问题
当我们看到这样的题时,心想就是一个简单的递归调用么。 但是,我们要看到这种算法的不足之处——效率低下。 首先简单的介绍一下 :
105 0

热门文章

最新文章