吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3236|回复: 8
收起左侧

[求助] Python一个整数分解为连续正整数之和

[复制链接]
judgecx 发表于 2019-12-25 16:07
本帖最后由 judgecx 于 2019-12-25 16:12 编辑

搞成之和就不会了
因式分解还会
哪位大佬指点一下
也就是输入15
然后输出
15 = 1 + 2 + 3 + 4 + 5

15 = 4 + 5 + 6

15 = 7 + 8

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

chinaqin 发表于 2019-12-25 17:03
木有明确楼主到底要啥。你说拆分为正整数之和,  1+14    2+13  1+2+12  这样很多了, 具体需求
zach14c 发表于 2019-12-25 17:06
[Python] 纯文本查看 复制代码
n = 15
for m in range(1, int(n/2)):
    if(2 * n % m == 0):
        t = 2 * n / m - m + 1
        if (t % 2 == 0):
            i = int(t / 2)
            print(*range(i, i + m))
万俟晓风 发表于 2019-12-25 17:42
把n除2,
得到的结果是整数的话就每次左右各加一个商两边的数,循环一下,终止条件是这些数之和等于n;
得到的结果不是整数的话也差不多。
Aszccdd 发表于 2019-12-25 17:57
我也不太懂,正好来围观一下大神的解答哈哈哈
gufengaoyue 发表于 2019-12-25 18:24
本帖最后由 gufengaoyue 于 2019-12-25 18:30 编辑

[Python] 纯文本查看 复制代码
n=15
m=range(1,n+1)
print(*[list(range(m[x-1],m[x-1] + y)) for x in m for y in m if sum(range(m[x-1],m[x-1] + y)) ==n])


哈哈哈
dazhuang 发表于 2019-12-25 18:34
chinaqin 发表于 2019-12-25 17:03
木有明确楼主到底要啥。你说拆分为正整数之和,  1+14    2+13  1+2+12  这样很多了, 具体需求

楼主说连续正整数之和
netCheney 发表于 2019-12-25 18:45
好像楼上已经给出答案了,楼主可以验证一下
 楼主| judgecx 发表于 2019-12-25 18:48
netCheney 发表于 2019-12-25 18:45
好像楼上已经给出答案了,楼主可以验证一下

验证了 老哥你还有其他方法吗
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 22:49

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表