当前位置: 首页 > news >正文

P1249 乘积最大

最大乘积

题目描述

一个正整数一般可以分为几个互不相同的自然数的和,如 3 = 1 + 2 3=1+2 3=1+2 4 = 1 + 3 4=1+3 4=1+3 5 = 1 + 4 = 2 + 3 5=1+4=2+3 51+4=2+3 6 = 1 + 5 = 2 + 4 6=1+5=2+4 6=1+52+4

现在你的任务是将指定的正整数 n n n 分解成若干个互不相同的自然数的和,且使这些自然数的乘积最大。

输入格式

只一个正整数 n n n,( 3 ≤ n ≤ 10000 3 \leq n \leq 10000 3n10000)。

输出格式

第一行是分解方案,相邻的数之间用一个空格分开,并且按由小到大的顺序。

第二行是最大的乘积。

样例 #1

样例输入 #1

10

样例输出 #1

2 3 5
30

思路摘要

·这些数互不相同
·构造2+3+……+a+b=n23,……,a为公差为1的等差数列。b为小于(a+1)的数。
·把b尽可能地均分给(2+3+……+a)先均分,每个都加(最多为1)再分配,从大往小给数值+1
a=list()
n=int(input())
ans=1for i in range(2,n):if i<=n:a.append(i)n-=ielse:breakx=n//len(a)#均分
y=n%len(a)#均分后剩余的,给个别的分
if y!=0:for i in range(len(a)-y,len(a)):a[i]=a[i]+1for i in range(len(a)):a[i]=a[i]+xprint(a[i],end=" ")ans*=a[i]
print()
print(ans)
http://www.lryc.cn/news/90571.html

相关文章:

  • 【7 Vue3 – Composition API】
  • 设计模式-模板方法模式
  • 9. python的if语句
  • 并发编程的基础知识
  • C 语言风格的字符串,非 string 类如何初始化字符串,以及操作字符串的函数(C++复习向p12)
  • Linux文件系统、磁盘I/O是怎么工作的?
  • 设计原则之接口隔离原则
  • ubuntu20.04 ffmpeg mp4转AES加密的m3u8分片视频
  • Java08——继承
  • C++高级语法
  • React学习笔记九-高阶函数与函数柯里化
  • 2023年电工杯B题半成品论文使用讲解
  • 第1关:ODBC程序设计
  • Kotlin笔记(零)简介
  • android 12.0去掉usb授权提示框 默认给予权限
  • 工作积极主动分享,善于业务沟通
  • Opencv-C++笔记 (1) : opencv的数据结构
  • 什么是时间复杂度?
  • Spring框架中有哪些不同类型的事件
  • Codeforcs 1732C2 暴力
  • Python安全和防护:如何保护Python应用程序和用户数据的安全
  • [转载]Nginx 使用 X-Accel-Redirect 实现静态文件下载的统计、鉴权、防盗链、限速等
  • 继电器的详细分类
  • docker的底层原理,带你上天
  • HNU-电子测试平台与工具2-串口实验5次
  • Ext JS嵌套分组表格的实现
  • 【配电网重构】基于改进二进制粒子群算法的配电网重构研究(Matlab代码实现
  • Python编程语言简介
  • ChatGPT国内免费访问
  • 从零到无搭建Vue项目及代码风格规范