【Contest Hunter 3101】阶乘分解【数论,数学】

阶乘分解【分解质因数】 描述 给定整数 N(1≤N≤10^6),试把阶乘 N! 分解质因数,按照算术基本定理的形式输出分解结果中的 p_i 和 c_i 即可。 输入格式 一个整数N。 输出格式 N! 分解质因数后的结果,共若干行,每行一对pi, ci,表示含有pi^ci项。按照pi从小到大的顺序输出。 样例输入 5 样例输出 2 3 3 1 5 1 样例解释 5! = 120 = 2^3 * 3... 阅读详情

题目大意:

题目链接:http://contest-hunter.org:83/contest/0x30「数学知识」例题/3101 阶乘分解
将 n ! n! n!分解质因数。


思路:

n ≤ 1 e 6 n\leq 1e6 n≤1e6,肯定是不能直接乘出来再分解的。
那么可以将1到 n n n的每个数分解质因数再合起来吗?时间复杂度 O ( n n ) O(n\sqrt{n}) O(nn ​),依旧不现实。
考虑每一个质数 p p p,在1到 n n n中,很明显是有 [ p n ] [\frac{p}{n}] [np​]( [ ] [] []表示向下取整)个数字含有质因数 p p p,有 [ p 2 n ] [\frac{p^2}{n}] [np2​]个数有质因数 p 2 . . . . . . p^2...... p2......有 p k n \frac{p^k}{n} npk​个数含有质因数 p k p^k pk。
所以, n ! n! n!中就有 ∑ p k ≤ n c [ p ] [ k ] \sum_{p^k\leq n}c[p][k] ∑pk≤n​c[p][k]个 p p p。
时间复杂度 O ( n l o g n ) O(nlogn) O(nlogn)


代码:

#include <cstdio>
#define N 2000010
using namespace std;

int p[N],c[N],v[N],n,m;
long long k;

void prime()  //线性筛质数
{
	for (int i=2;i<=n;i++)
	{
		if (!v[i])
		{
			p[++m]=i;
			v[i]=i;
		}
		for (int j=1;j<=m;j++)
		{
			if (p[j]>v[i]||i*p[j]>n) break;
			v[i*p[j]]=p[j];
		}
	}
}

int main()
{
	scanf("%d",&n);
	prime();
	for (int i=1;i<=m;i++)
	{
		k=1;
		while (k*p[i]<=n)
		{
			k*=p[i];  
			c[i]+=n/k;  //记录个数
		}
	}
	for (int i=1;i<=m;i++)
	 printf("%d %d\n",p[i],c[i]);
	return 0;
}
【CH 3101】阶乘分解 题目描述 给定整数 N(1≤N≤106)N(1≤N≤106)N(1≤N≤10^6),试把阶乘 N!N!N! 分解质因数,按照算术基本定理的形式输出分解结果中的 pipip_i 和 cicic_i 即可。 算法分析 一个一个分解显然不可行,我们考虑对于每个质数,计算它在 1×2×...×N1×2×...×N1\times2\times...\times N 中每个数分解质因数后对应的指数和... 阅读详情

相关推荐

阶乘因式分解

http://acm.nyist.net/JudgeOnline/problem.php?pid=70 阶乘因式分解(二) 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 给定两个数n,m,其中m是一个素数。 将n(0 注:^为求幂符号。   输入 第一行是一个整数s(0 随后的s行, 每行有两个整数n,m。

sead+ 3667

CH3101 阶乘质因数分解

题意 3101 阶乘分解 0x30「数学知识」例题 描述 给定整数 N(1≤N≤10^6),试把阶乘 N! 分解质因数,按照算术基本定理的形式输出分解结果中的 p_i 和 c_i 即可。 输入格式 一个整数N。 输出格式 N! 分解质因数后的结果,共若干行,每行一对pi, ci,表示含有pi^ci项。按照pi从小到大的顺序输出。 样例输入 5 样例输出 2 3 3 1 5 1 样例解释 5! = ...

FreeGo~ 744

ROS2初级面试题汇总

总结和收集了一些关于ros2的问题和解答记录

qq_57633442的博客 5556

阶乘分解题解

描述 给定整数 N(1≤N≤10^6),试把阶乘 N! 分解质因数,按照算术基本定理的形式输出分解结果中的 p_i 和 c_i 即可。 输入格式 一个整数N。 输出格式 N! 分解质因数后的结果,共若干行,每行一对pi, ci,表示含有pi^ci项。按照pi从小到大的顺序输出。 样例输入 5 样例输出 2 3 3 1 5 1 样例解释 5! = 120 = 2^3 * 3 * 5 我的思路: 1,使用线性筛将1-n之间的质数全部筛出来 2,外加一个很巧妙的规律:一个素数p在n!里的个数 == n/p + n

qq_44685940的博客 497

osg3.6.5---osgEarth3.2 实现数字地球的加载

目前我在网上找得比较多的是osgearth2.10及以下的版本及加载数字地球的方法,但是我使用的是osg3.6.5和osgEarth3.。但是3.x版本和2.x版本差别很大,主要区别在于2.x有7个主要库,而3.x版本只有osgEarth这一个库。所以,特别记录一下。后面我讲他集成到qt的窗体在上传更新新的代码。1.直接上源码pro文件和cpp文件。

枫影竹韵的博客 1008

HTML5网页基础设计——课程介绍专栏

案例: 参考代码: <!doctype html> <html> <head> <meta charset="utf-8"> <title>动手实践</title> <style> *{ margin: 0; padding: 0; font-size:14px; } dd{ width: 461px; height: 145px; margin: -4px; pad.

shengming_tutou的博客 4594

阶乘分解(算术基本定理)

算术基本定理,又称为正整数的唯一分解定理,即:每个大于1的自然数均可写为质数的积,而且这些素因子按大小排列之后,写法仅有一种方式。即n = P1^a1 * P2^a2 * …………* (P1 < P2 < ……Pn);代码化可以先将素数打表,之后求幂问题 A: 阶乘分解时间限制:1 Sec内存限制:128 MB提交:31解决:12[提...

weixin_30765319的博客 785

ROCm rocr-libhsakmt分析系列9-3: queue的内核创建流程

KFD队列是用户空间与GPU通信的核心机制,通过多种队列类型(计算、DMA、调试等)实现命令流管理。核心数据结构包括描述队列属性的queue_properties、内核调度对象queue、进程级管理器process_queue_manager,以及跨进程设备的qcm_process_device等。这些结构通过ring buffer、doorbell机制和MQD硬件描述符协同工作,支持队列全生命周期管理、资源调度、异常处理和上下文保存/恢复功能。

图形/计算GPU的驱动与虚拟化技术分享园地 2126

Ch3101-阶乘分解【数论,质因数分解】

正题 题目链接:http://contest-hunter.org:83/contest/0x30%E3%80%8C%E6%95%B0%E5%AD%A6%E7%9F%A5%E8%AF%86%E3%80%8D%E4%BE%8B%E9%A2%98/3101%20%E9%98%B6%E4%B9%98%E5%88%86%E8%A7%A3 题目大意 质因数分解n!n!n!的阶乘。 解...

QuantAsk 631

40、5G NR射频要求解析

本文详细解析了5G NR射频相关要求,包括参考灵敏度与动态范围的定义、接收机对干扰信号的抗扰性要求(如阻塞、邻道选择性等)、辐射射频要求在FR1和FR2频段的差异,以及多标准无线电基站(MSR)的发展及其对射频要求的影响。内容涵盖测试模型、干扰场景、具体指标和实现挑战,为理解和应用5G NR射频规范提供了全面指导。

qsc901234的博客 245

Python 爬虫实战:在丁香医生抓取健康科普文章阅读量,普及健康知识

requests:用于发送 HTTP 请求,获取网页内容。或 lxml:用于解析 HTML 页面,提取目标数据。pandas:用于数据清洗和分析。matplotlib和seaborn:用于数据可视化。通过本项目,我们实现了以下目标:使用 Python 爬虫抓取丁香医生的健康科普文章阅读量。对数据进行清洗和分析,找出热门文章。通过可视化展示数据,并普及健康知识。

u014481728的博客 1567

【数论 质数】Contest Hunter_3101 阶乘分解

题意 给出NNN,求出N!N!N!的质因子和它们的个数。 思路 如果直接分解1∼N1∼N1\sim N的质因子,时间复杂度很大,我们可以考虑别的做法。 因为N!=1∗2∗3∗...∗NN!=1∗2∗3∗...∗NN!=1*2*3*...*N,所以N!N!N!的质因子不会超过NNN,我们就可以先筛出1∼N1∼N1\sim N的质数,然后判断N!N!N!的质因子的个数。 N!N!N!中的...

GOODPLACE 419

RK3588平台开发系列讲解(USB篇)UAC初识

📢本篇将介绍RK3588平台`UAC`的配置使用。

内核笔记 3880

阶乘分解

问题 A: 阶乘分解 时间限制: 1 Sec  内存限制: 128 MB 题目描述 给定整数N(1≤N≤10^6),试把阶乘N!分解质因数,按照算术基本定理的形式输出分解结果中的pi和ci即可。   输入 一个整数N。   输出 N! 分解质因数后的结果,共若干行,每行一对pi, ci,表示含有pi^ci项。按照pi从小到大的顺序输出。   样例输入 复制样例数据 5 ...

oneplus123的博客 695

B07:AI 时代怎么考核团队?我把 KPI 改了 5 版才找到答案

最后说一句掏心窝的话。绩效考核不是"管人"的工具,是"引导团队行为"的工具。你定什么指标,团队就会做什么行为。你定"AI 占比",团队就凑占比你定"效率提升",团队就挑软柿子你定"代码行数",团队就刷行数你定"工具使用率",团队就刷使用只有定"业务价值 + 工程质量 + 能力成长"三个维度的指标,团队才会真正关注长期价值。这套 KPI,我在我带的团队里跑了 6 个月,没有任何一个指标被"刷"出来。考核的是结果,不是过程。永远考核"创造了多少价值",永远不考核"用了多少 AI"。

刘一说的IT专栏 499

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

质因数分解及算法实现

每个合数都可以写成几个质数相乘的形式,这几个质数就都叫做这个合数的质因数。如果一个质数是某个数的因数,那么就说这个质数是这个数的质因数。而这个因数一定是一个质数。 定义 质因数(或质因子)在数论里是指能整除给定正整数的质数。两个没有共同质因子的正整数称为互质。因为1没有质因子,1与任何正整数(包括1本身)都是互质。正整数的因数分解可将正整数表示为一连串的质因子相乘,质因子如重复可以指数表示...

AAAA 4223

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

阶乘的标准分解式中素因数的指数

下面的资料来自:广东江门市华侨中学,赣南师范学院学报论文                           program:(求阶乘含有的某个素数因子的指数) (1)、 int cal(int n,int p) {   if(n     return 0;   else return n/p+cal(n/p,p); }

muxi@Achilles的专栏 5441

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

阶乘[分解质因数][二分答案]

描述 有n个正整数a[i],设它们乘积为p,你可以给p乘上一个正整数q,使p*q刚好为正整数m的阶乘,求m的最小值。 输入 共两行。 第一行一个正整数n。 第二行n个正整数a[i]。 输出 共一行 一个正整数m。 样例输入 1 6 样例输出 3 提示 样例解释: 当p=6,q=1时,p*q=3! 【数据范围与约定】 对于10%的数据,n&lt;=10 对于30%...

FSYo 的博客 671

算术基本定理------比1大的整数N的素因子分解是唯一的

算术基本定理:每一个比1大的整数N只能有一种方式分解成素数的乘积。(不考虑因子的次序) 这个命题初看起来似乎是很明显的,但它决不是不证自明的。本篇博文给出两种证明方法。证明一:反证法 思路: 假设存在一个整数,它有两种根本不同的素数分解,然后从这个假设出发导出一个矛盾,于是说明原假设不成立,命题得证。 证明: 如果存在整数(大于1),有两种根本不同的素数分解,则这样的正整数中必有一个是最小的,设

麦田里的码农 2994

3101 阶乘分解 (数学)

描述 给定整数 N(1≤N≤10^6),试把阶乘 N! 分解质因数,按照算术基本定理的形式输出分解结果中的 p_i 和 c_i 即可。 输入格式 一个整数N。 输出格式 N! 分解质因数后的结果,共若干行,每行一对pi, ci,表示含有pi^ci项。按照pi从小到大的顺序输出。 样例输入 5 样例输出 2 3 3 1 5 1 样例解释 5! = 120 = 2^3 * 3...

weixin_30764771的博客 341

【 阶乘分解】(素数)

题目: 给定整数 N ,试把阶乘 N! 分解质因数,按照算术基本定理的形式输出分解结果中的pipi和cici即可。 输入格式 一个整数N。 输出格式 N! 分解质因数后的结果,共若干行,每行一对pi,cipi,ci,表示含有pciipici项。按照pipi从小到大的顺序输出。 数据范围 1≤N≤1061≤N≤106 输入样例: 5 输出样例: 2 3 3 1 5...

哇哈哈哈的博客 1785

算术基本定理

因为毕设要求,需要对这些初等数论的知识学习,做个笔记,以便日后复习。 算术基本定理可表述为:任何一个大于1的自然数N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积N=这里均为质数,其中指数是正整数。这样的分解称为N的标准分解式。最早证明是由欧几里得给出的,现代是由陈述证明。此定理可推广至更一般的交换代数和代数数论。 方法一:先用现代陈述方法证明该定理 待证命题:大于1的自然数必...

salmonwilliam的博客 2482
上一篇: 【POJ 3468】A Simple Problem with Integers【分块】
下一篇: 【洛谷P1962】斐波那契数列【矩阵乘法】
stoorz1023
博客等级 码龄9年 101粉丝 595原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值