python求反素数_python第五周:一元二次方程求根、百钱买百鸽、最大公约数和最小公倍数、计算三角形面积、回文素数、反素数...

一元二次方程求根

一元二次方程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

原文:https://www.cnblogs.com/linjiaxin59/p/12677349.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值