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

news/2024/12/22 17:36:09/

阶乘分解《算法竞赛进阶指南》 \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;}
}

http://www.ppmy.cn/news/1330918.html

相关文章

上位机图像处理和嵌入式模块部署(windows opencv)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 opencv可以运行在多个平台上面&#xff0c;当然windows平台也不意外。目前来说&#xff0c;opencv使用已经非常方便了&#xff0c;如果不想自己编译…

【心得】java从CC1链入门CC链个人笔记

来劲了&#xff0c;感觉离真正的CTF又近了一步。 本文仅从一个萌新的角度去谈&#xff0c;如有纰漏&#xff0c;纯属蒟蒻。 目录 CC链概念 CC链学习前置知识 CC1链 Version1 Version2 Version3 CC链概念 CC链 Commons Collections apache组织发布的开源库 里面主要对…

数据库:逻辑删除|物理删除及适用性

物理删除和逻辑删除是两种不同的记录删除操作方式&#xff0c;它们各自具有一些优劣势&#xff0c;并适用于不同的场景。 物理删除 物理删除的优势&#xff1a; 节省存储空间&#xff1a;物理删除会直接从数据库中删除记录&#xff0c;可以实现即时的存储空间释放&#xff0c…

2024.1.20

今天主要是以复习为主&#xff0c;以前写过的C语言代码和高数&#xff0c;就在后天&#xff0c;紧张刺激的高数考试就来了&#xff0c;还是有点小慌…… #define _CRT_SECURE_NO_WARNINGS #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<math.h> #i…

多输入多输出 | Matlab实现SSA-CNN麻雀算法优化卷积神经网络多输入多输出预测

多输入多输出 | Matlab实现SSA-CNN麻雀算法优化卷积神经网络多输入多输出预测 目录 多输入多输出 | Matlab实现SSA-CNN麻雀算法优化卷积神经网络多输入多输出预测预测效果基本介绍模型背景程序设计参考资料 预测效果 基本介绍 Matlab实现SSA-CNN麻雀算法优化卷积神经网络多输入…

解密POM:提升自动化脚本稳定性和开发效率的正确姿势!

Page Objects是selenium的一种测试设计模式&#xff0c;主要将每个页面看作是一个class。class的内容主要包括属性和方法&#xff0c;属性不难理解&#xff0c;就是这个页面中的元素对象&#xff0c;比如输入用户名的输入框&#xff0c;输入登陆密码的输入框、登陆按钮、这个页…

openssl3.2/test/certs - 027 - server intermediate ca: sca-cert

文章目录 openssl3.2/test/certs - 027 - server intermediate ca: sca-cert概述笔记END openssl3.2/test/certs - 027 - server intermediate ca: sca-cert 概述 openssl3.2 - 官方demo学习 - test - certs 笔记 // \file my_openssl_linux_log_doc_027.txt // \note open…

爬楼梯算法

引言 在算法和编程领域&#xff0c;爬楼梯问题是一个著名的示例&#xff0c;用于引入动态规划的概念。这个问题看似简单&#xff0c;但其背后蕴含的思想却非常深刻。本文将详细介绍爬楼梯问题的解决方案&#xff0c;并通过实例代码展示如何应用动态规划解决这一经典问题。 问…