news 2025/12/25 3:18:46

GESP认证C++编程真题解析 | B3871 [GESP202309 五级] 因数分解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
GESP认证C++编程真题解析 | B3871 [GESP202309 五级] 因数分解

​欢迎大家订阅我的专栏:算法题解:C++与Python实现!
本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战!

专栏特色
1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的代码实现与详细指导,帮助您夯实算法基础。
2.系统化学习路径:按照算法类别和难度分级,从基础到进阶,循序渐进,帮助您全面提升编程能力与算法思维。

适合人群:

  • 准备参加蓝桥杯、GESP、CSP-J、CSP-S等信息学竞赛的学生
  • 希望系统学习C++/Python编程的初学者
  • 想要提升算法与编程能力的编程爱好者

附上汇总帖:GESP认证C++编程真题解析 | 汇总


【题目来源】

洛谷:[B3871 GESP202309 五级] 因数分解 - 洛谷

【题目描述】

每个正整数都可以分解成素数的乘积,例如:6 = 2 × 3 6=2\times 36=2×320 = 2 2 × 5 20=2^2\times520=22×5

现在,给定一个正整数,请按要求输出它的因数分解式。

【输入】

输入第一行,包含一个正整数N NN。约定2 ≤ N ≤ 1 0 12 2 \le N \le 10^{12}2N1012

【输出】

输出一行,为的因数分解式。要求按质因数由小到大排列,乘号用星号*表示,且左右各空一格。当且仅当一个素数出现多次时,将它们合并为指数形式,用上箭头^表示,且左右不空格。

【输入样例】

6

【输出样例】

2 * 3

【算法标签】

《洛谷 B3871 因数分解》 #数论# #GESP# #2023#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintN=1005;// 最大质因子数量intn;// 要分解的数inta[N],b[N];// a[i]存储第i个质因子,b[i]存储对应的指数intcur;// 当前质因子数量signedmain(){// 输入要分解的数cin>>n;// 质因数分解for(inti=2;i*i<=n;i++)// 只需检查到√n{if(n%i==0)// 如果i是n的因子{a[++cur]=i;// 记录质因子b[cur]=0;// 初始化指数// 计算指数:不断除以i直到不能整除while(n%i==0){b[cur]++;// 指数加1n/=i;// 除以质因子}}}// 处理剩余的部分// 如果n>1,说明n本身是一个质数if(n>1){a[++cur]=n;// 剩余的n是质因子b[cur]=1;// 指数为1}// 调试输出// for (int i = 1; i <= cur; i++)// cout << a[i] << ' ' << b[i] << endl;// 格式化输出质因数分解结果for(inti=1;i<cur;i++)// 前cur-1个因子{if(b[i]==1){cout<<a[i];// 指数为1,只输出因子}else{cout<<a[i]<<"^"<<b[i];// 指数大于1,输出指数形式}cout<<" * ";// 因子间用乘号连接}// 输出最后一个因子(不加乘号)if(b[cur]==1){cout<<a[cur];// 指数为1}else{cout<<a[cur]<<"^"<<b[cur];// 指数大于1}return0;}

【运行结果】

6 2 * 3
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/24 14:25:55

Kotaemon能否用于保险条款解读?复杂文本简化能力

Kotaemon能否用于保险条款解读&#xff1f;复杂文本简化能力 在保险行业&#xff0c;一份标准的重疾险合同动辄上百页&#xff0c;密布着“等待期”“免责情形”“给付条件”等专业术语。当用户问出“甲状腺癌还能赔吗&#xff1f;”这样看似简单的问题时&#xff0c;背后可能涉…

作者头像 李华
网站建设 2025/12/24 0:32:50

23、跨平台 Unix 系统管理与自动化工具实践

跨平台 Unix 系统管理与自动化工具实践 在管理多样化的 *nix 机器基础设施时,可以结合使用 SSH 密钥、NFS 挂载的源目录和跨平台 Python 代码,以下是详细步骤。 系统管理步骤 创建 SSH 公钥 :在用于管理机器的系统上创建 SSH 公钥。不同平台的操作可能有所不同,可参考操…

作者头像 李华
网站建设 2025/12/23 20:47:41

30、Python 并发编程:线程、进程与调度全解析

Python 并发编程:线程、进程与调度全解析 1. 线程的使用 在 Python 中,线程是实现并发的一种方式。下面通过几个具体的例子来详细介绍线程的应用。 1.1 多线程 ARPing 以下代码展示了如何使用多线程进行 ARPing 操作: worker.start() #spawn pool of arping threads f…

作者头像 李华
网站建设 2025/12/19 18:46:36

rt-linux下的“硬实时”的hrtimer通知机制

一、背景 之前的一些rt-linux的博客已经讲到,由于rt-linux下注册的hrtimer的回调默认都并非在硬中断里直接执行,而是被放到的软中断里去执行,这会导致一些实时性的问题,甚至一些系统基础的操作如常见的一些用户态定时睡眠的一些操作在rt-linux下变得有些波动。另外,有些抓…

作者头像 李华
网站建设 2025/12/24 22:09:33

60、C 编程综合知识解析

C# 编程综合知识解析 1. 并发类与集合 在 C# 编程中, System.Collections.Concurrent 命名空间提供了一系列并发类,这些类在多线程环境下能高效地处理数据集合。主要的并发类包括: - ConcurrentQueue<T> :实现了先进先出(FIFO)的队列,可在多线程环境下安全地…

作者头像 李华