一元二次方程求根
一元二次方程ax2+bx+c=0,a、b、c的值由用户在三行中输入,根据用户输入的数值求解方程的实数解:
如果a值 为0,根据b值判断方程是否有解并输出,如果a与b同时为0,则输出Data error!
如果方程无实数解,输出“该方程无实数解”;
如果方程有两个相同的实数解,输出一个解;
如果方程有两个不同的实数解,在一行内按从大到小顺序输出方程的两个解,用空格分隔。
importmath
a=float(input())
b=float(input())
c=float(input())
data=pow(b,2)-4*a*cif(a==0):if(b==0):print("Data error!")else:print(-(c/b))else:if(data<0):print("该方程无实数解")elif(data==0):print((-b+math.sqrt(data))/(2*a))else:
x1=(-b+math.sqrt(data))/(2*a)
x2=(-b-math.sqrt(data))/(2*a)if(x1>x2):print("{} {}".format(x1,x2))else:print("{} {}".format(x2,x1))
百钱买百鸡
我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,如果要求鸡翁、鸡母、鸡雏都不为零,问鸡翁、鸡母、鸡雏各几何?
每行输出一组结果,按鸡翁数、鸡母数、鸡雏数的顺序输出,数字之间用空格分隔;
如果有多组解时,按公鸡数量由少到多输出;
for i in range(1,100):for x in range(1,100):for y in range(1,100):if (((5*i+3*x+(1/3)*y)==100)and(i+x+y==100)):print(i,x,y)
求最大公约数和最小公倍数
a=int(input())
b=int(input())
ma=max(a,b)
mi=min(a,b)while(b!=0):
temp= a %b
a=b
b=tempfor i in range(1,mi+1):if ma*i%mi==0:
x=ma*ibreak
print(a,x)
判断三角形并计算面积
输入三个数a,b,c, 判断能否以它们为三个边长构成三角形。若能,输出YES和三角形面积(结果保留2位小数),否则输出NO。
a=float(input())
b=float(input())
c=float(input())if (a+b>c) and (a+c>b) and (b+c>a):
s=(a+b+c)/2area=(s*(s-a)*(s-b)*(s-c))**0.5
print("YES")print("{:.2f}".format(area))else:print("NO")
回文素数
回文素数是指一个数既是素数又是回文数。例如,131,既是素数又是回文数。
用户输入一个正整数n(1 <= n <= 100), 请你在一行内输出从小到大排列的的前n个回文素数,数字之间用空格分隔。
n=int(input())
a=0
b=1
defprime(num):if num <= 1:returnFalse
i= 2
while i * i <=num:if num % i ==0:returnFalse
i+= 1
returnTruedefhuiwen(num):
t=num
total=0while t>0:
total=total * 10+t % 10t=int(t/10)return num==totalwhile (a!=n):if(huiwen(b) andprime(b)):print(b ,end=' ')
a=a+1b=b+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:returnFalse
i= 2
while i * i <=num:if num % i ==0:returnFalse
i+= 1
returnTruedef huiwen(num): #判断数字是否回文
t=num
total=0while t>0:
total=total * 10+t % 10t=int(t/10)return num!=totaldef fanshu(num): #将数字反过来
t=num
total=0while t>0:
total=total * 10+t % 10t=int(t/10)return(total)while (a!=n):
b2=fanshu(b)if(huiwen(b) and prime(b) andprime (b2)):print(b ,end=' ')
a=a+1b=b+1