浙大版《Python 程序设计》题目集第4章-2——第4章-6

第4章-2 统计素数并求和

本题要求统计给定整数M和N区间内素数的个数并对它们求和。

输入格式:
输入在一行中给出两个正整数M和N(1≤M≤N≤500)。

输出格式:
在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。

输入样例:

10 31

输出样例:

7 143

答案样例:

m,n = input().split()
m = int(m)
n = int(n)
c = 0
s = 0
for i in range(m,n+1):
    flag = True
    for j in range(2,int(i**0.5)+1):
        if i % j == 0:
            flag = False
            break
    if flag and i != 1:
        c += 1
        s += i
print(f'{c} {s}')

第4章-3 猴子吃桃问题

一只猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半加一个。到第N天早上想再吃时,见只剩下一个桃子了。问:第一天共摘了多少个桃子?

输入格式:
输入在一行中给出正整数N(1<N≤10)。

输出格式:
在一行中输出第一天共摘了多少个桃子。

输入样例:

3

输出样例:

10

答案样例:

a = int(input())
sum = 1
for i in range(a-1):
    sum = (sum+1)*2
print(sum)

第4章-4 验证“哥德巴赫猜想”

数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24=5+19,其中5和19都是素数。本实验的任务是设计一个程序,验证20亿以内的偶数都可以分解成两个素数之和。

输入格式:
输入在一行中给出一个(2, 2 000 000 000]范围内的偶数N。

输出格式:
在一行中按照格式“N = p + q”输出N的素数分解,其中p ≤ q均为素数。又因为这样的分解不唯一(例如24还可以分解为7+17),要求必须输出所有解中p最小的解。

输入样例:

24

输出样例:

24 = 5 + 19

答案样例:

def isprime(num):
    for i in range(2,int(num**0.5)+1):
        if num % i == 0:
            return False
    return True
a = int(input())
for i in range(2,a+1):
    if isprime(a-i) and isprime(i):
        break
print('{} = {} + {}'.format(a,i,a-i))

第4章-5 求e的近似值

自然常数 e 可以用级数 1+1/1!+1/2!+⋯+1/n!+⋯ 来近似计算。本题要求对给定的非负整数 n,求该级数的前 n+1 项和。

输入格式:
输入第一行中给出非负整数 n(≤1000)。

输出格式:
在一行中输出部分和的值,保留小数点后八位。

输入样例:

10

输出样例:

2.71828180

答案样例:

from math import factorial
a = int(input())
sum = 0
for i in range(a+1):# 0的阶乘等于1
    sum += 1/factorial(i)
print('{:.8f}'.format(sum))

第4章-6 输出前 n 个Fibonacci数

本题要求编写程序,输出菲波那契(Fibonacci)数列的前N项,每行输出5个,题目保证输出结果在长整型范围内。Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列,例如:1,1,2,3,5,8,13,…。

输入格式:
输入在一行中给出一个整数N(1≤N≤46)。

输出格式:
输出前N个Fibonacci数,每个数占11位,每行输出5个。如果最后一行输出的个数不到5个,也需要换行。

如果N小于1,则输出"Invalid."

输入样例1:

7

输出样例1:

          1          1          2          3          5
          8         13

输入样例2:

0

输出样例2:

Invalid.

答案样例:

a = int(input())
flag = 0
x = 0
y = 1
if( a > 0):
    for i in range(a):
        flag += 1
        x,y = y,x+y
        print(f'{x}'.rjust(11),end='')
        if flag % 5 == 0:
            print()
else:
    print('Invalid.')

猜你喜欢

转载自blog.csdn.net/hmh4640219/article/details/113540619
今日推荐