【5.4.2 因子和阶乘】

题解:洛谷 B4236 [四川青少年 C++ 算法设计大赛 2024] 4-5 年级组第 7 题 等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。从个位数开始向前数,有多少个连续的。本文分享的必刷题目是从。#入门# #语法基础# 阅读详情
输入正整数n(2<=n<=100),把阶乘n!=1*2*3*...*n分解成素因子相乘的形式,从小到大输出各个素数(2、3、5...)的指数。例如,5! 表示为 3,1, 1个2, 3, 5。程序忽略比最大素因子更大的素数(否则末尾会有无穷多个0)。
样例输入:
5
53
样例输出:
5! = 3 1 1 
53! = 49 23 12 8 4 4 3 2 2 1 1 1 1 1 1 1 

[分析]

因为a^m * a^n = a^(m+n),所以我们只需把所有素因子对应的指数累加起来 。注意,n<=100,即这些素因子不会超过100。我们首先构造一张最大素数为100的素数表,然后用阶乘的每一个数(从小到大)与每一个素数相模,并记录每一个素数的指数。用一个数组p来保存对应的各个素数的指数个数,并标记最大的那个素因子的下标为maxp,最后循环输出到最大下标即可。

#include<stdio.h>
#include<string.h>
int is_prime(int n){	//素数判断。
	for(int i=2;i*i<=n;i++)
		if(n%i==0)
			return 0;
		return 1;

}
int prime[100],count=0;
int main(){
	int p[100],n;
	int maxp;
	for(int i=2;i<=100;i++)//100以内素数表prime[];
		if(is_prime(i))
			prime[count++]=i;
		while(scanf("%d",&n)!=EOF){
			printf("%d!=",n);
		memset(p,0,sizeof(p));//p[]数组 记录个数。
		for(i=1;i<=n;i++)
		{	
			int m=i;	
			for(int j=0;j<count;j++){
				while(m%prime[j]==0){
					m/=prime[j];
					p[j]++;
					if(j>maxp)//maxp 记录最大数的小标。
						maxp=j;		
				}			
			}		
		}
		for(i=0;i<=maxp;i++)
			printf(" %d",p[i]);
		printf("\n");
		}
}

写简单易懂的代码,欢迎交流。
vasp计算练习1-Si si的vasp训练流程 阅读详情

相关推荐

DDR4内存PCB设计实战:8层板Fly-by拓扑信号完整性优化

本文深入探讨了DDR4内存条在8层PCB板上采用Fly-by拓扑时的信号完整性优化实战。文章详细解析了层叠规划、阻抗控制、电源分割、等长布线及串扰抑制等关键设计要点,并强调了仿真验证的重要性,为硬件工程师提供了从理论到实践的完整设计指南与自查清单。

weixin_29296241的博客 339

day9--因子和阶乘(JAVA)

因子和阶乘 题目描述 输入正整数(2&amp;lt;=n&amp;lt;=100),把阶乘n!= 1 * 2 * 3 * …* n分解成素因子相乘的形式,从小到大输出各个素数(2、3、5…)的指数。例如825 = 3 * 5^2 * 11,应表示成(0、1、2、0、1),即分别有0、1、2、0、1个2、3、5、7、11参加相乘。你的程序应该忽略比最大素因子更大的素数(否则末尾会有无穷多个0) Sample Inp...

TK.lgy的博客 356

PL端:HDMI 输出实验

开发板没有HDMI编码芯片,是将FPGA的3.3差分IO直接连接到HDMI连接器,FPGA 完成 24 位 RGB 编码输出TMDS 差分信号。1、学会使用第三点IP核,首先是添加,后面的使用和自带IP核操作一致。2、主要还是在梳理vivado使用流程。

qq_43441284的博客 4287

算法竞赛入门经典:第五章 基础题目选解 5.10 因子和阶乘

/* 因子和阶乘: 输入正整数n(2<=2<=100),把阶乘n!=1*2*3*...*n分解成素因子相乘的形式,从小到大输出各个素数(2,3,5...)的指数。例如825=23*5^2*11应表示成(0,1,2,0,1), 表示分别有0、1、2、0、1个2、3、5、7、11.你的程序应忽略比最大素因子更大的素数(否则末尾会有无穷个0) 输入: 5 53 输出: 5! = 3 1

qingyuanluofeng的专栏 897

qemu-system-aarch64参数详解与实战配置指南

本文详细解析了qemu-system-aarch64的核心参数,包括-machine、cpu、smp、m、drive和netdev等关键配置。通过嵌入式内核调试、完整系统运行和外设模拟三大实战场景,提供可直接使用的配置示例与性能优化技巧,帮助开发者在x86主机上高效构建和调试ARM64虚拟环境。

weixin_29197051的博客 351

手把手教你用DSP28335的PWM移相功能搞定双有源桥DAB(附完整代码)

本文详细解析了DSP28335的PWM移相功能在双有源桥DAB中的应用,包括ePWM模块的配置、移相时序原理及实战代码。通过精确的移相控制,实现DAB的高效运行和软开关,适用于车载充电机、储能系统等场景。附完整代码,助力开发者快速掌握硬件级移相技术。

weixin_30632089的博客 420

《算法竞赛入门经典》5.42数学基础-因子和阶乘

输入正整数n(2<=n<=100),把阶乘n!=1*2*3*…*n分解成素因子相乘的形式,从小到大输出各个以(2、3、4、5…)的指数。例如825=3*5*5*11应表示成(0,1,2,0,1),表示分别有0、1、2、0、1个2、3、5、7、11。程序应忽略比最大书因子更大的素数(否则末尾会有无穷多个0)。样例输入:553样例输出:5! = 3 1 153! = 49 23 ...

aawyxv2369的博客 261

Python 爬虫实战:爬取 BOSS 直聘职位,实现岗位要求关键词提取

摘要:本文基于BOSS直聘数据分析师岗位信息,采用Python爬虫技术获取职位数据,通过文本分析和可视化方法研究岗位技能需求特征。研究首先设计爬虫程序获取职位基本信息和岗位要求文本,经数据清洗后运用jieba分词和词频统计提取关键词。结果显示SQL、Python为最核心技能,不同级别岗位需求差异明显:初级重基础数据处理,高级需建模和管理能力;行业间亦存在差异,互联网关注用户增长,金融侧重风控。研究为求职者技能提升提供了数据支持,同时展示了从非结构化文本中挖掘有价值信息的完整流程。

2503_91057718的博客 1765

ACM:因子和阶层

题目:输入正整数n(2≤n≤100),把阶乘n!=1×2×3ׄ×n分解成素因子相乘的形式,从 小到大输出各个素数(2、3、5、„)的指数。例如825=3×52 ×11应表示成(0,1,2,0,1),表示分别有0、1、2、0、1个2、3、5、7、11。你的程序应忽略比最大素因子更大的素数(否则末尾会有无穷多个0)。   样例输入:  5 53  样例输出: 5!=3 1 1  53!=4

u010470972的专栏 920

Unity中的Timeline

Timeline与动画系统类似,但是它可以针对多个物体做出一系列多个动画,它可以创建多个轨道,对象激活与隐藏轨道,动画轨道,声音轨道等。每个轨道都可以单独编辑,轨道内的不同资源可以排列并且融合

L的博客 1万+

JavaSwing_1.1: FlowLayout(流式布局)

FlowLayout,流式布局管理器。按水平方向依次排列放置组件,排满一行,换下一行继续排列。

谢TS的博客 7万+

因子和阶乘

输入正整数n(2-100),把n!=1*2*3....n分解成素因子相乘的形式,从小到大输出各个素数(2,3,5...)的指数。 样例输入: 5 样例输出: 5!= 3  1  1 package algorithm; public class JieCheng { // 判断是否为素数 static boolean isPrime(int n) { for(int

kirrin的专栏 800

无人驾驶Autoware导读

认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对无人驾驶Autoware介绍做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。

qq_35635374的博客 2397

5.4.2 因子和阶乘

#include #include #include void get_prime( int a[] ) { int b[105]; memset(b, 0, sizeof(b)); for(int i=2; i<=100; i++) { if(b[i]==0) { for(int j=i+i; j<=1

郑在努力~ 634

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

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

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

算法竞赛入门经典5.4.2因子和阶乘

//“除非n太太太大了,否则都可运行”的版本 #include #include #include bool isPrime(int x){ int m = floor(sqrt(x + 0.5)); for (int i = 2; i <= m; ++i){ if (x % i == 0){ return false; } } return true; } int m

Ice He's Note 638

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

算法入门竞赛 5.4.2 因子和阶乘

重点: 1.数组P[101]:

littlekenan的专栏 639

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

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

【py交易】算法竞赛入门经典5.4.2 因子和阶乘 Python

题目: 分析:0.825除以2,除不尽(共0次);除以3,能除尽,再除以3,除不尽(共1次);除以5,能除尽,再除以5,能除尽,再除以5,除不尽(共2次)。。。所以为01201 1.输入一个数,计算这个数的阶乘,需要一个计算阶乘的函数:factorial,用到了递归 2.需要一个素数集,用isPrime函数 3.要用到键值对的存储结构,py可以用字典类存储,声明方法是 dick =

benrciv的博客 817

CH5.4.2因子和阶乘

  #include&lt;stdio.h&gt; #include&lt;string.h&gt; bool is_prime(int n) { if(n &lt; 2) return false; for(int i = 2; i*i &lt;= n; ++i) if(n % i == 0) return false; return true; } int prime[1...

howlowl 201

c语言 n阶阶乘尾0个数,算一算N阶乘的尾随零个数

问题描述很简单: 求解N阶乘的尾随零个数而所谓尾随零个数,即是从个位数开始,数字连续为0的个数.譬如:3!(阶乘符号,下同) = 3 * 2 * 1 = 6, 尾随零个数为05! = 5 * 4 * 3 * 2 * 1 = 120, 尾随零个数为110! = 10 * 9 * … * 1 = 3628800, 尾随零个数为2OK,明白问题之后,我们就来尝试算一算吧~方法1既然要求解阶乘值的尾随零个...

weixin_35665984的博客 1154

1037: 阶乘末尾0的个数(一)(Java)

题目描述 求N的阶乘末尾存在多少个0。 输入 输入存在多组测试数据,对于每组测试数据输入一个整数N(0<=N<=10^9) 输出 对于每组测试数据,输出一行表示答案。 样例输入 12 20 样例输出 2 4 题目分析,由于2*5=10,2的数量比5的数量多,所以只需统计5的数量即可,一个数的阶乘中,5的因子的数量是n/5,而有些数可以被5除多次,所以使用递归。 import java.util.Scanner; public class Main { public static voi

lby666888的博客 447

【51nod】 2652 阶乘0的数量 V2(数学)(二分)

Description 给出一个数k,求最小的n,使得n的阶乘后面0的数量>=k。 例如k=1, 5的阶乘 = 12345 = 120,120后面有1个0。并且4的阶乘后面没有0,所以5是最小的结果。 输入 一个数k(1 <= k <= 10^9) 输出 输出最小的满足条件的n。 输入样例 1 输出样例 5 题意: 题目中说的已经很明白了,就是要解决某个数的阶乘后面零的个数和查询...

Nerdant 920

每日一题 阶乘

阶乘 N 的阶乘(记作 N!)是指从 1 到 N(包括 1 和 N)的所有整数的乘积。 阶乘运算的结果往往都非常的大。 现在,给定数字 N,请你求出 N! 的最右边的非零数字是多少。 例如 5!=1×2×3×4×5=120,所以 5! 的最右边的非零数字是 2。 输入格式 共一行,包含一个整数 N。 输出格式 加粗样式输出一个整数,表示 N! 的最右边的非零数字。 数据范围 1≤N≤1000 输入样例: 7 输出样例: 4 #include<iostream> #include<alg

撒浪嘿呦✨的博客 451

阶乘

题目 N 的阶乘(记作 N!)是指从 1 到 N(包括 1 和 N )的所有整数的乘积。 阶乘运算的结果往往都非常的大。 现在,给定数字 N ,请你求出 N! 的最右边的非零数字是多少。 例如 5!=1×2×3×4×5=120 ,所以 5! 的最右边的非零数字是 2 。 输入格式 共一行,包含一个整数 N 。 输出格式 输出一个整数,表示 N! 的最右边的非零数字。 数据范围 1≤N≤1000 输入样例: 7 输出样例: 4 思路 对于n的阶乘,其可以表示为2的x次方乘上5的y次方再乘上若干素数的若干次方,

TomCruisePro的博客 531

洛谷——P2043 质因子分解

P2043 质因子分解 题目描述 对N!进行质因子分解。 输入格式 输入数据仅有一行包含一个正整数N,N<=10000。 输出格式 输出数据包含若干行,每行两个正整数p,a,中间用一个空格隔开。表示N!包含a个质因子p,要求按p的值从小到大输出。 输入输出样例 输入 #1复制 10 输出 #1复制 2 8 3 4 5 2 7 1 说明/提示 10!=3628800=(28)*(34)*(5^2)*7 #include<bits/stdc++.h> #include<algorit

... 1189

USACO fact4

水题,不过还是需要想一下的 做完看了一些解题报告,目前觉得还是自己这种好一点。其他一些方法对数据有局限性 /* ID: kainste2 PROG: fact4 LANG: C++ */ #include #include #include #include #include #include // isalpha, isdigit, isprint, toupper, tol

220

计算n阶乘中尾部零的个数

大佬答案 大佬的思路看了好久,每次看都会明白一丢丢,现在还有不明白的地方,但是要往后继续加油了,知新温故。 结论:参与阶乘的所有数的因子中只要存在一个2和一个5就会在阶乘的结果中产生一个0. 又因为因子2的个数远多于因子5的个数,所以只要计算出参与阶乘的所有数中具有因子5的数的个数就可以了。 例子: 11!=11*10*9*8*7*6*5*4*3*2*1=11*2*5*9*...

weixin_30569001的博客 138
上一篇: 爱情
下一篇: 【125 盗梦空间】
paidream
博客等级 码龄14年 24粉丝 195原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

paidream

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值