You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

排查Python求解φ(n)=16时代码仅返回17、遗漏其余解的问题

问题原因

你当前的代码逻辑是找到第一个满足phi(i) == 16的数值后就会终止循环,所以只会输出最小的符合条件的17,不会继续向后查找其他结果。同时你没有设置合理的搜索边界,无法遍历所有可能的候选值。

调整方案

我们可以先设置一个足够覆盖所有候选值的搜索上限(根据欧拉函数的性质,所有满足φ(n)=16的正整数n都小于100,该上限完全足够),遍历范围内所有整数,将符合条件的值存入列表统一输出即可。

调整后的代码如下:

from math import gcd

def phi(n):
    value = 0
    for k in range(1, n+1):
        if gcd(n, k) == 1:
            value += 1
    return value

# 搜索上限设置为100,可覆盖所有满足φ(n)=16的正整数
max_search = 100
valid_n = []
for n in range(1, max_search + 1):
    if phi(n) == 16:
        valid_n.append(n)

print("满足φ(n)=16的正整数:", valid_n)

运行结果

输出为:
满足φ(n)=16的正整数: [17, 32, 34, 40, 48, 60]

内容的提问来源于stack exchange,提问作者hwanju song

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 18:09:02