第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.')