酷代码 AI
菜单
服务商

小核桃挑选了两个砝码,如果它们上面的数字都是质数,并且数字加起来的和是n,就可以打开门。现在告诉你这两个砝码上的数字,请你判断他们能否打开门。 输入: 三个整数,n表示数字加起来的和,x和y分别表示两个砝码的数字。 输出: 如果能打开门就输出"yes",否则输出"no"。

要判断两个砝码能否打开门,需同时满足两个条件: 1. x 和 y 都是质数 2. x + y == n 注意:质数定义为大于 1 的自然数,且仅有两个正因数(1 和自身)。因此 1 不是质数,2 是最小的质数。 以下是 Python 实现: ```python def is_prime(num): if num < 2: return False if num == 2: return True if num % 2 == 0: return False # 只需检查到 sqrt(num) i = 3 while i * i <= num: if num % i == 0: return False i += 2 return True # 读入三个整数 n, x, y = map(int, input().split()) # 判断 x 和 y 是否都是质数,且和为 n if is_prime(x) and is_prime(y) and (x + y == n): print("yes") else: print("no") ``` 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: - 质数判断中容易忽略 1 和负数、0 的情况,必须明确质数定义域为 ≥2 的整数 - 当 x 或 y 为 2 时,是唯一的偶质数,不能被偶数判断逻辑错误排除 - 输入顺序固定为 n x y,不可误认为 x y n 或其他顺序 [2026-02-07 22:44:43 | AI写代码神器 | 332点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多