如何删除列表中元组的重复项,其中元组元素的顺序相反?

2024-10-01 04:53:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个任务,我的程序将询问用户一个正整数n,程序将找到正整数a和b,使a^3+b^3=n。在

我迄今为止的工作和进展如下

def ramunajan(n):
    list=[]
    u = int(n**(1/3)+1)
    for a in range (0,u):
        b = (n-a**3)**(1/3)
        b = round(b)
        if a**3+b**3 == n:
            list.append((a,b))
    return list     

while True:
    try:
        n = input("För vilket positivt heltal n vill du hitta a och b där a^3 + b^3 = n ?\n")
    except ValueError or n <= 0:
            continue
    else:
            break

list_1 = ramunajan(int(n))
print (list_1)

(输入的文本消息为瑞典语。)

我现在的问题是,当用户输入时,例如1729,程序会相应地给出输出

For what postivie integer n would you like to find a and b, satisfying a^3 + b^3 = n ?

1729

[(1, 12), (9, 10), (10, 9), (12, 1)]

如何从列表中去掉反向重复项,即(10,9)和(12,1)?在

谢谢!在


Tags: 用户in程序forreturnifdefrange
1条回答
网友
1楼 · 发布于 2024-10-01 04:53:07

u = int(n**(1/3)+1)替换为u = int((n**(1/3))/2) + 1

所以它只检查池的前半部分,因为后半部分是重复的

相关问题 更多 >