模拟战狼一之入侵网络

第2关:找 m 到 n 之间的所有素数

任务描述

本关任务:编写一个能找 m 到 n 之间的所有素数的小程序。

相关知识

为了完成本关任务,你需要掌握: 1.遍历循环

遍历循环

确定次数的循环可以用for...in 结构的遍历实现。

编程要求

有人分析了战狼1中龙小云的入侵病毒的源代码

第二段代码的C语言版本如下:

,

分析图片中的第二段代码,功能应该是输出找 100 到 200 之间的所有素数,请用Python语言完成同样的功能。用户输入两个整数m和n(m<n),在同一行内输出m 到 n 之间的所有素数,各数字后跟一个空格。

测试说明

平台会对你编写的代码进行测试:

测试输入: 100 200 预期输出: 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199

def is_prime(num):
    """判断一个数是否为素数"""
    if num <= 1:
        return False
    for i in range(2, int(num**0.5) + 1):
        if num % i == 0:
            return False
    return True

def find_primes(m, n):
    """找出m到n之间的所有素数"""
    primes = []
    for num in range(m, n + 1):
        if is_prime(num):
            primes.append(num)
    return primes

# 获取用户输入
m = int(input())
n = int(input())

# 查找并输出素数
primes = find_primes(m, n)
print(" ".join(map(str, primes)))

第3关:找 100 到 999 之间的所有水仙花数

任务描述

本关任务:编写一个能找找 100 到 999 之间的所有水仙花数小程序。

测试说明

平台会对你编写的代码进行测试:

测试输入: 无输入 预期输出: 153 370 371 407

def is_armstrong_number(num):
    """判断一个数是否为水仙花数"""
    digits = [int(d) for d in str(num)]
    return sum(d**3 for d in digits) == num

def find_armstrong_numbers(m, n):
    """找出m到n之间的所有水仙花数"""
    armstrong_numbers = []
    for num in range(m, n + 1):
        if is_armstrong_number(num):
            armstrong_numbers.append(num)
    return armstrong_numbers

# 获取用户输入
m = 100
n = 999

# 查找并输出水仙花数
armstrong_numbers = find_armstrong_numbers(m, n)
print(" ".join(map(str, armstrong_numbers)))

 第4关:输入一个整数并找出其所有因数

测试说明

平台会对你编写的代码进行测试:

测试输入: 20 预期输出: 1 2 4 5 10 20

def find_factors(num):
    factors = []
    for i in range(1, num + 1):
        if num % i == 0:
            factors.append(i)
    return factors

num = int(input())

# 查找并输出因数
factors = find_factors(num)
print(" ".join(map(str, factors)))

第5关:根据键盘输入的分数评出五分制等级

测试说明

平台会对你编写的代码进行测试:

测试输入: 100 预期输出: A

 

def grade(score):
    if score >= 90:
        return 'A'
    elif score >= 80:
        return 'B'
    elif score >= 70:
        return 'C'
    elif score >= 60:
        return 'D'
    else:
        return 'E'

score = int(input())

print(grade(score))

第6关:根据输入判断是星期几

任务描述

本关任务:编写一个能根据输入判断是星期几的小程序。

def get_weekday_first_letter(first_letter, second_letter=None):
    first_letter = first_letter.lower()
    if first_letter == 'm':
        return "Monday"
    elif first_letter == 't':
        if second_letter == 'e':
            return "Tuesday"
        elif second_letter == 'h' or second_letter == 'r' :
            return "Thursday"
        return "无法匹配"
    elif first_letter == 'w':
        return "Wednesday"
    elif first_letter == 'f':
        return "Friday"
    elif first_letter == 's':
        if second_letter == 't' or second_letter == 'r':
            return "Saturday"
        elif second_letter == 'n':
            return "Sunday"
        return "无法匹配"
    else:
        return "无法匹配"
 
def main():
    first_letter = input().lower()
    if first_letter == 't' or first_letter == 's':
        second_letter = input().lower()
        result = get_weekday_first_letter(first_letter, second_letter)
    else:
        result = get_weekday_first_letter(first_letter)
    print(result)
 
if __name__ == "__main__":
    main()

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值