蓝桥等考Python组别十七级04(含k个“2”的质数)

蓝桥等考Python组别十七级004

第一部分:选择题

1、Python L17 (15分)

运行下面程序,输出的结果是(    )。

def func(x, y):

    return (x - y) // 2

print(func(10, 4))

  1. 2
  2. 3
  3. 5
  4. 6

正确答案:B

2、Python L17 (15分)

运行下面程序,输出的结果是(    )。

def func(x):

    for i in range(2, x):

        if x % i == 0:

            print(i, end = ' ')

func(8)

  1. 2
  2. 2 4
  3. 1 2 4
  4. 2 4 8

正确答案:B

3、Python L17 (20分)

运行下面程序,输入哪个数时,输出的是True?(    )

def isPrime(x):

    if x == 0 or x == 1:

        return False

    for i in range(2, x):

        if x % i == 0:

            return False

    return True

n = int(input())

print(isPrime(n))

  1. 5
  2. 10
  3. 12
  4. 18

正确答案:A

第二部分:编程题

4、Python L17 含k个“2”的质数(50分)

题目描述:

在大于1的自然数中,除了1和它本身以外不再有其他因数的数叫做质数。

输入两个正整数x、k,判断x是否符合以下特点,如果符合输出“yes”,否则输出“no”。

1.x是质数;

2.x恰好包含k个数字“2”。

例如:

x=223,k=2,

223是质数,而且恰好包含2个数字“2”,符合上述特点。

输入:

第一行一个正整数x(1<=x<=100000);

第二行一个正整数k(1<=k<=5)。

输出:

一个字符串,如果x符合上述特点,输出“yes”,否则输出“no”。

输入样例1:

223

2

输出样例1:

yes

参考程序1:

def isPrime(x): #判断x是不是质数

    if x == 0 or x == 1:

        return False

    for i in range(2, x):

        if x % i == 0:

            return False

    return True

x = int(input())

k = int(input())

if isPrime(x) and str(x).count('2') == k:

    print('yes')

else:

    print('no')

参考程序2:

def eratosthenes(x): #埃拉托斯特尼筛法

    isPrime = [True] * (x + 1)

    for i in range(2, int(x ** 0.5) + 1):

        if isPrime[i]:

            for j in range(i * i, x + 1, i):

                isPrime[j] = False

    return isPrime[x]

x = int(input())

k = int(input())

if eratosthenes(x) and str(x).count('2') == k:

    print('yes')

else:

    print('no')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值