一元二次方程求根
import math
def root_of_square(a,b,c):
discr=pow(b,2)-4*a*c
if a!=0 and discr>0:
x1=(-b+math.sqrt(discr))/(2*a)
x2=(-b-math.sqrt(discr))/(2*a)
if x1>x2:
return x1,x2
else:
return x2,x1
elif a!=0 and discr==0:
return -b/(2*a)
elif a!=0 and discr<0:
print("该方程无实数解")
elif a==0 and b!=0:
return -c/b
else:
return "Data error!"
a=input()
b=input()
c=input()
print(root_of_square(float(a),float(b),float(c)))
百元买百鸡
我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,如果要求鸡翁、鸡母、鸡雏都不为零,问鸡翁、鸡母、鸡雏各几何?
for x in range(1,21):
for y in range(1,34):
z = 100 - x - y
if(z%3==0 and 5*x+3*y+z//3 == 100):
print(x,y,z)
最大公约数最小公倍数
a = eval(input())
b = eval(input())
s=a*b
while a%b !=0:
a,b=b,(a%b)
else:
print("{:.0f} {:.0f}".format(b,s//b))
判断三角形并计算面积
import math
a = eval(input())
b = eval(input())
c = eval(input())
if a+b<=c or a+c<=b or b+c<=a:
print("NO")
elif a<0 or b<0 or c<0:
print("NO")
else:
s = math.sqrt((a+b+c)*(a+b-c)*(a+c-b)*(b+c-a))/4
print("YES")
print("{:.2f}".format(s))
判断IP地址合法性
互联网上的每台计算机都有一个独一无二的编号,称为IP地址,每个合法的IP地址由'.'分隔开的4个数字组成,每个数字的取值范围是0-255。
现在用户输入一个字符串(不含空白符,不含前导0,如001直接输入1),请你判断s是否为合法IP,若是,输出'Yes',否则输出'No'。
如用户输入为202.114.88.10, 则输出Yes; 当用户输入202.114.88,则输出No。
def isIpaddr(addr):
flag=0
data=addr.split(".")
if len(data)==4:
for i in range(0,4):
if 0<=int(data[i])<=255:
pass
else:
flag=1
if flag==0:
print ("Yes" )
else:
print( "No" )
else:
print ("No" )
ipaddr=input("")
if ipaddr!='.':
isIpaddr(ipaddr)
回文素数
回文素数是指一个数既是素数又是回文数。例如,131,既是素数又是回文数。
用户输入一个正整数n(1 <= n <= 100), 请你在一行内输出从小到大排列的的前n个回文素数,数字之间用空格分隔。
def isPrime(n):
if n <= 1:
return False
i = 2
while i * i <= n:
if n % i == 0:
return False
i += 1
return True
n = 0
m = 2
s=eval(input())
while n < s:
if isPrime(m) and str(m) == str(m)[ ::-1 ]:
n += 1
print("{:.0f}".format(m), end = ' 'if n%100 else '\n')
m += 1
反素数
反素数(逆向拼写的素数)是指一个将其逆向拼写后也是一个素数的非回文数。例如:13和31都是素数,且13和31都不是回文数,所以,13和31是反素数。
输入一个正整数n(1 <= n <= 100), 请输出从小到大排列的的前n个反素数,数字间以空格进行分隔。
n=int(input())
a=0
b=1
def prime(num): #判断数字是否是素数
if num <= 1:
return False
i = 2
while i * i <= num:
if num % i == 0:
return False
i += 1
return True
def huiwen(num): #判断数字是否回文
t=num
total=0
while t>0:
total=total * 10+t % 10
t=int(t/10)
return num!=total
def fanshu(num): # 将数字反过来
t=num
total=0
while t>0:
total=total * 10+t % 10
t=int(t/10)
return (total)
while (a!=n):
b2=fanshu(b)
if(huiwen(b) and prime(b) and prime (b2)):
print(b ,end=' ')
a=a+1
b=b+1
今天是第几天
输入包括三行:
第一行是一个不超过四位数的正整数
第二行是一个不超过12的正整数
第三行是一个不超过31的正整数
year = int(input())
month = int(input())
day = int(input())
day_month=[31,28,31,30,31,30,31,31,30,31,30,31]
if month == 1:
print("{:.0f}年{:.0f}月{:.0f}日是{:.0f}年第{:.0f}天".format(year,month,day,year,day))
else:
n = sum(day_month[:month-1])+day
if (year%400 == 0) or (year%100 == 0) and (year%100 != 0):
print("{:.0f}年{:.0f}月{:.0f}日是{:.0f}年第{:.0f}天".format(year,month,day,year,n+1))
else:
print("{:.0f}年{:.0f}月{:.0f}日是{:.0f}年第{:.0f}天".format(year,month,day,year,n))
提取首字符
用户输入一串单词或数字,中间用空格分隔,提取每个单词或数字的第一个字符生成一个新的字符串并输出。
str=input("")
lista=' '.join(str.split()).split(' ')
newstr=''
for item in lista:
newstr=newstr+item[0]
print(newstr)
判断火车票位置
用户输入一个数字和一个字母组成的座位号,根据字母判断位置是窗口还是过道。目前中国高铁和国内飞机窗口位置的字母是'A'和'F',过道位置是'C'和 'D',中间位置是'E'。
每个车厢座位排数是1-17,字母不区分大小写
import re
str = input("")
g = re.sub("\D",'',str)
if 1 <= int(g) <= 17:
if str[-1] in ['A','F','a','f']:
print("窗口")
elif str[-1] in ['C','D','c','d']:
print("过道")
elif str[-1] == 'E':
print("中间")
else:
print("输入错误")
else:
print("输入错误")
计算函数曲线与x周包围的面积
from math import *
a,b= map(float,input().split())
n = 10000
dn = (b-a)/n
sum = 0
for i in range(n):
sum += abs(sin(i*dn))*dn
print("{:.2f}".format(sum))
哥德巴赫猜想
描述
数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24=5+19,其中5和19都是素数。本实验的任务是设计一个程序,验证20亿以内的偶数都可以分解成两个素数之和。
输入格式
输入在一行中给出一个(2, 2 000 000 000]范围内的偶数N。
输出格式
在一行中按照格式“N = p + q”输出N的素数分解,其中p ≤ q均为素数。又因为这样的分解不唯一(例如24还可以分解为7+17),要求必须输出所有解中p最小的解。
n = eval(input())
k = 2
def prime(n):
for i in range(2,n):
if n % i == 0:
return False
return True
for i in range(int(n/2)):
s = n - k
if ( prime(s)):
print("N = {} + {}".format(k,s))
break
else:
k += 1
与7无关的数
一个正整数,如果它能被7整除,或者它的十进制表示法中某一位的数字为7,则称其为与7相关的数、
求所有小于n(n < 100)的与7无关的正整数以及他们的平方和。
n = eval(input())
list = []
for i in range(1,n):
if i %7 != 0:
if (i%10) != 7 and i//10 != 7:
list.append(i)
print(list)
sum = 0
for i in range(len(list)):
sum = sum + list[i]*list[i]
print(sum)
高次方程求根

已知f(1.5)>0,f(2.4)<0,且在[1.5,2.4]区间只且只有一个根,求该根。要求四舍五入到小数点后6位
import math
def f(x):
r = x**5-15*x**4+85*x**3-225*x**2+274*x-121
return r
a = 1.5
b = 2.4
c = (a+b)/2
while abs(f(c)) >1e-6:
if f(a)*f(c)<0:
b = c
else:
a = c
c = (a+b)/2
print("{:.6f}".format(c))
浙公网安备 33010602011771号