• 1
    数据输入输出
    • 任务
  • 2
    条件语句
    • 任务
  • 3
    for循环
    • 任务
  • 4
    字符串
    • 任务
  • 5
    while循环
    • 任务
  • 6
    列表
    • 任务
  • 7
    二维数组
    • 任务
  • 8
    字典
    • 任务
  • 9
    集合
    • 任务
  • 10
    函数与递归
    • 任务
  • к

课程 2. Conditions

难度:

任务«加密城堡»

💻 Python

你——一位勇敢的冒险者,在游历过程中,你在古老城堡的地牢里发现了一个神秘的宝箱。宝箱上锁着一个魔法密码锁,需要输入三个秘密数字。墙上的铭文记载,如果满足以下两个条件中的 至少一个 ,锁就会打开:

  • 输入锁中的三个数字构成 严格递增 序列(即每个后续数字都比前一个大)。
  • 全部三个 数字都是 质数。
  • 回忆一下,质数——是大于1的自然数,只能被1和自身整除(例如2、3、5、7、11)。

    你的任务——编写一个程序,帮助你快速检查数字组合。程序应判断三个输入的整数是否能打开城堡的锁。

    输入格式

    三个整数(Integer),每个整数从新的一行输入。这些是城堡的秘秘密数字。

    输出格式

    一行(字符串)结果:"锁已打开" 或 "城堡已锁定"。

    示例

    输入

    3
    5
    7

    输出

    城堡开放

    提示

    There will be no clue here, decide for yourself!

    main.py
    测试 1
    测试 2
    测试 3
    测试 4
    测试 5
    测试 6
    测试 7
    测试 8
    测试 9
    测试 10
    开发者解答
    # Запрашиваем у пользователя три целых числа
    a = int(input())
    b = int(input())
    c = int(input())
    
    # Проверка первого условия: строго возрастающая последовательность
    # Эта переменная будет True, если a < b и b < c, иначе False
    is_increasing = a < b < c
    
    # Проверка второго условия: все три числа являются простыми
    # Создаем флаги для каждого числа, по умолчанию считаем их простыми
    a_is_prime = True
    b_is_prime = True
    c_is_prime = True
    
    # Проверяем число 'a' на простоту
    if a <= 1:
        # Числа меньше или равные 1 не являются простыми
        a_is_prime = False
    else:
        # Перебираем все возможные делители от 2 до a-1
        for i in range(2, a):
            # Если нашелся делитель без остатка, число не простое
            if a % i == 0:
                a_is_prime = False
                break # Прерываем цикл, так как дальше проверять нет смысла
    
    # Проверяем число 'b' на простоту (логика аналогична)
    if b <= 1:
        b_is_prime = False
    else:
        for i in range(2, b):
            if b % i == 0:
                b_is_prime = False
                break
    
    # Проверяем число 'c' на простоту (логика аналогична)
    if c <= 1:
        c_is_prime = False
    else:
        for i in range(2, c):
            if c % i == 0:
                c_is_prime = False
                break
    
    # Итоговый флаг для второго условия: будет True, только если все три флага True
    all_are_prime = a_is_prime and b_is_prime and c_is_prime
    
    #  Финальное решение 
    # Замок откроется, если выполнено хотя бы одно из двух условий (оператор or)
    if is_increasing or all_are_prime:
        print("Замок открыт")
    else:
        print("Замок заперт")

    🎉 恭喜! 🎉

    你出色地完成了任务!这是一个不小的挑战,但你找到了正确答案。你离编程大师又近了一步!继续保持,每一步都让你更强大。

    AD

    广告

    red-snake blue-snake green-snake

    正在运行代码...

    AI助手

    你好!我是你的编程助手。随时向我提问关于 Python 的问题——我可以解释函数、方法,并帮助你完成当前任务!