哥德巴赫猜想
哥德巴赫猜想
def is_prime(n):
"""判断素数的函数,接收一个正整数为参数,参数是素数时返回True,否则返回False
减小判定区间,减少循环次数,提升效率"""
##点击在此输入一行或多行代码
if n < 2:
return False
for i in range(2,int(n / 2) + 1):
if n % i == 0:
return False
else:
return True
def goldbach_conjecture(num):
""" 哥德巴赫猜想, 接收一个不小于4的正整数为参数。
当参数为不小于4的偶数时,将其分解为两个素数的加和,按小数+数的格式输出。
有多种组合时全部输出,但不输出重复的组合,例如输出8=3+5,不输出8=5+3。
参数为奇数或小于4时,输出'Data error!'
"""
##点击在此输入一行或多行代码
if num >= 2:
if num % 2 == 0:
for i in range(1,int(num/2)+1):
if is_prime(i) and is_prime(num - i):
print('N = {} + {}'.format(i,num-i))
break
else:
print('Data error!')
n = int(input())
goldbach_conjecture(n)
正负交错数列前n项和
正负交错数列前n项和
n = int(input())
a = -1
sum = 1
b,c = 1,2
for i in range(2,n+1):
# i = float(i)
sum = sum + a*(i-1)/c
t = c
c = b + c
b = t
a = -a
print('{:.6f}'.format(sum))
@TOC)
百分制成绩转换五分制(循环)
#百分制成绩转换五分制(循环)
flag=1
while flag:
grade=eval(input())
try:
if 100>=grade>=90:
print('A')
elif 90>grade>=80:
print('B')
elif 80>grade>=70:
print('C')
elif 70>grade>=60:
print('D')
elif 60>grade>=0:
print('E')
elif grade<0:
print('end')
flag=0
else:
print('data error!')
except:
print('data error!')
判断闰年
判断闰年
n = int(input())
if n % 400 == 0 :
print('True')
elif n % 4 == 0 and n % 100 != 0:
print('True')
else:
print('False')
回文素数
回文素数
from math import*
def isprime(n):
for j in range(2,int(sqrt(n))+1):
if n%j==0:
return 0
return 1
def ishui(n):
n1=n[::-1]
if n1==n:
return 1
return 0
x=int(input())
i=0
n=2
while(i<x):
if(isprime(n) and ishui(str(n))):
print(n,end=' ')
i+=1
n+=1
完数
完数
def isPrime(n): #判断素数的函数
if n < 2:
return False #0和1不是素数
for i in range(2, int(n**0.5)+1):
if n % i == 0:
return False
else:
return True
def isPerfect(m): #判断完数的函数
if isPrime(m) and isPrime(2**m-1):
s = 2**(m-1)*(2**m-1)
ls.append(s)
for i in range(2, s // 2 + 1):
if s % i == 0:
factor.append(i)
return s
else:
return False
n = int(input())
count,num = 0, 1
ls = []
while count <n:
factor = []
if isPerfect(num):
print('{}=1'.format(ls[count]), end='')
for j in factor:
print("+{}".format(j), end='')
count = count + 1
print()
num = num + 1
二分法求平方根B
二分法求平方根B
import math
n,a = map(float,input().split(','))
#n为输入的实数,m为精度
b = 0
c = n + 0.25
while abs(((b+c)/2)**2-n)>a:
if ((b + c)/2)**2-n>a:
c=(b+c)/2
else:
b = (b+c)/2
print('{:.8f}'.format((b+c)/2))
print('{:.8f}'.format(math.sqrt(n)))
列表嵌套字典的排序
列表嵌套字典的排序
n=int(input())
a=[]
for i in range(n):
m=input().split()
b={}
b['name']=m[0]
b['age']=int(m[1])
a.append(b)
a1=sorted(a,key=lambda x:x['age'])
a2=sorted(a,key=lambda x:x['name'])
print(a1)
print(a2)