阶乘分解《算法竞赛进阶指南》

阶乘分解《算法竞赛进阶指南》 \Huge{阶乘分解《算法竞赛进阶指南》} 阶乘分解《算法竞赛进阶指南》
题目地址:197. 阶乘分解 - AcWing题库

题面

给定整数 N N N,试把阶乘 N ! N! N! 分解质因数,按照算术基本定理的形式输出分解结果中的 p i p_i pi c i c_i ci 即可。

输入格式

一个整数 N N N

输出格式

N ! N! N! 分解质因数后的结果,共若干行,每行一对 p i , c i p_i, c_i pi,ci,表示含有 p i c i p_i^{c_i} pici 项。按照 p i p_i pi 从小到大的顺序输出。

数据范围

3 ≤ N ≤ 1 0 6 3 \le N \le 10^6 3N106

输入样例:
5
输出样例:
2 3
3 1
5 1
样例解释

5 ! = 120 = 2 3 ∗ 3 ∗ 5 5! = 120 = 2^3 * 3 * 5 5!=120=2335

思路

给定一个整数 n n n,然后要求将 n ! n! n!进行质因数分解,并且按照算术基本定理的形式输出分解结果中的 p i p_i pi c i c_i ci
算数基本定理: N = p 1 c 1 × p 2 c 2 × . . . × p m c m N=p^{c_1}_1 \times p^{c_2}_2 \times...\times p^{c_m}_m N=p1c1×p2c2×...×pmcm
因此,我们求出小于 n n n中有多少个数是质数 x x x的倍数,即 n ! n! n!中有多少个 x x x相乘,也就是 x ? x^? x?,然后直接输出即可。

标程

vector<PII> p(N);
bool q[N];
int tot;

void primes(int n) {
   
    for(int i = 2; i <= n; i ++ ) {
   
        if(!q[i]) p[tot++].fi = i;
        for(int j = 0; p[j].fi <= n / i; j ++ ) {
   
            q[p[j].fi * i] = 1;
            p[j].se ++;
            if(i % p[j].fi == 0) break;
        }
    }
}

void Solved() {
   
    int n; cin >> n;
    primes(1e6);
    
    for(int i = 2; i <= n; i ++ ) {
   
        if(q[i]) continue;
        LL x = i; int res = 0;
        while(x <= n) res += n / x, x *= i;
        cout << i << " " << res << endl;
    }
}

相关推荐

  1. 分解算法竞赛指南

    2024-01-29 15:56:01       59 阅读
  2. 算法竞赛指南学习目录

    2024-01-29 15:56:01       64 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-29 15:56:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-29 15:56:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-29 15:56:01       82 阅读
  4. Python语言-面向对象

    2024-01-29 15:56:01       91 阅读

热门阅读

  1. CSS基础

    CSS基础

    2024-01-29 15:56:01      50 阅读
  2. 解释Go中常见的I/O模式

    2024-01-29 15:56:01       49 阅读
  3. Redis:入门(二)

    2024-01-29 15:56:01       52 阅读
  4. 【Linux笔记】编wpa_supplicantl库

    2024-01-29 15:56:01       51 阅读
  5. SpringMVC

    SpringMVC

    2024-01-29 15:56:01      53 阅读
  6. 多路IO复用服务器——select模型和poll模型

    2024-01-29 15:56:01       52 阅读
  7. mysql迁移至达梦数据库

    2024-01-29 15:56:01       53 阅读
  8. Linux中的知识点

    2024-01-29 15:56:01       54 阅读