Python 判断可逆素数
描述
若将某一素数的各位数字的顺序颠倒后得到的数仍是素数,则此素数称为可逆素数
输入形式
用户在第一行输入一个整数。
输出形式
程序输出yes或是no,yes表示此数是可逆素数(也即这个数本身及其逆序数,两个都是素数),no表示不是。用户输入的数必须为正整数。注意:yes或是no全是小写输出。
输入输出示例
输入 | 输出 | |
示例 1 |
|
|
说明:用户输入23,23各位数字颠倒之后得到32,23是素数,但32不是素数,所以23不是可逆素数。
提示:素数的定义为除了1和它本身外,不能被其他数整除。因此,对于n而言,可以将需要检查的2,3,...,n-1这些因子逐个检查,是否都不能被n整除。如果成立,则n为素数。
def reverse(str,len):
if(len==1):
return str[0]
else:
return str[-1]+reverse(str[:-1],len-1)
def prime(num):
for i in range(2,num):
if(num%i==0):
break
if(i==num-1):
return 1
else:
return 0
num_str=input("")
num=eval(num_str)
reverse_num=eval(reverse(num_str,len(num_str)))
if(prime(num)==1 and prime(reverse_num)==1):
print ("yes")
else:
print ("no")
月份天数
描述
编写一个函数 day_of_month(year, month)
编写程序输入年(year)、月(month),调用该函数,返回该年份该月的天数,输出返回的天数。
公历闰年的计算方法为:
年份能被4整除且不能被100整除的为闰年
或者,年份能被400整除的是闰年。
输入描述
共一行。有两个整数,第一个是年份,第二个是月份。年份和月份之间以一个空格隔开。
输出描述
输出该年该月的天数。
输入输出示例
输入 | 输出 | |
示例 1 |
|
|
def is_runnian(nian):
#闰年:1. 被4整除,不被100整除 2. 被400整除
if (nian % 4 == 0 and nian % 100 != 0) or nian % 400 == 0:
return True
return False
#1. 输入年份月份
ny_str = input() #"2017 11"
nian, yue = ny_str.split() #"2017"-->nian, "11" --> yue
nian = int(nian)
yue = int(yue)
#print("nian:", nian, "yue:", yue)
#2.输出月份的天数
yue_ts = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if is_runnian(nian) and yue == 2:
print(29)
else:
print(yue_ts[yue - 1])
三个数的最大值
描述
请用多分支、选择嵌套等方法分析输出三个数的最大值。
输入形式
三个数之间用空格间隔
输出形式
三个数的最大值
输入输出示例
输入 | 输出 | |
示例 1 |
|
|
a,b,c = map(eval, input().split())
if a>=b and a>=c:
print(a)
elif b>=a and b>=c:
print(b)
elif c>=a and c>=b:
print(c)
鸡兔同笼
类型:流程控制
描述
大约在1500年前,《孙子算经》中记载一个有趣的问题:今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?
大概的意思是:有若干只鸡兔同在一个笼子里,从上面数,有35个头,从下面数,有94只脚,问笼中各有多少只鸡和兔?
请编一个程序,用户在同一行内输入两个整数,代表头和脚的数量,编程计算笼中各有多少只鸡和兔(假设鸡和兔都正常,无残疾)。如无解则输出“Data Error!”
#参考下面的示例代码,从同一行读入两个数
a, b = input().split() # 将输入的以空格分隔的两个数命名为a和b
a, b = map(int,input().split(',')) # 将输入的以逗号分隔的两个值,转换为整数后命名为a和b
输入格式
输入为一行,以空格分隔的两个整数h f,分别代表鸡兔的总头数和总脚数。
输出格式
使用输入值进行计算,如有解,则输出:有m只鸡,n只兔;如无解则输出Data Error!
示例 1
输入:35 94
输出:有23只鸡,12只兔
示例 2
输入:-24 12
输出:Data Error!
示例 3
输入:12 35
输出:Data Error!
h,f = map(int, input().split()) #读入以空格分隔的两个数,转换为整数
if (f > 0) and (h > 0) and (f >= 2*h ) and ((f-2*h) %2 == 0):
rabbit = (f-2*h) // 2
chicken = h - rabbit
print("有{}只鸡,{}只兔".format(chicken,rabbit))
else:
print("Data Error!")