【问题描述】如何判断一个数是否为素数?当输入数据小于等于2的时候,可以直接给出答案,当输入大于2的时候,其实可以用穷举法试出来的哦。依次用n除以2、3、4……直到n的一半(可直接取整),判断是否可以整除。如果期间的任意一个数可以整除n,则说明n不是素数,如果都不能整除,则n是素数。
【输入形式】每次输入一个自然数n,0≤n≤1000
【输出形式】一行,如果n是素数,则输出“Y”,否则输出“N”(注意不包含引号)
【样例输入】13
【样例输出】Y
【样例说明】13是素数,输出Y
【评分标准】全部通过得满分
注意判断0和1
整除为 //
n=int(input())
flag = 0
if n < 2:
print("N")
else:
for i in range(2,n//2):
if n%i==0:
print("N")
flag = 1;
break;
if flag != 1:
print("Y")
【问题描述】
输入一个人民币的整数值(100以内以元为单位),编程找到用10元、5元、2元、1元表示的总数量的最小组合方式。
【输入形式】
从控制台输入一个整数值,表示以元为单位的人民币币值。
【输出形式】
向控制台输出四个整数(以空格分隔),分别表示兑换成的10元、5元、2元、1元人民币的数量,若没有某个币值,则对应输出0。
【样例1输入】
98
【样例1输出】
9 1 1 1
【样例1说明】
输入为98,表示98元人民币,把其兑换成10元、5元、2元、1元表示的总数量的最小组合方式为:9个10元,1个5元,1个2元,1个1元,故输出:9 1 1 1
【样例2输入】
11
【样例2输出】
1 0 0 1
【样例2说明】
输入为11,表示11元人民币,把其兑换成10元、5元、2元、1元表示的总数量的最小组合方式为:1个10元,1个1元,没有5元和2元,故输出:1 0 0 1
【评分标准】
共5个测试点
求最小组合,那就先把数额大的先用完,再用小一级的
m = int(input())
ten = m//10
m = m%10
five = m//5
m = m%5
two = m//2
m = m%2
one = m//1
m = m%1
print(ten, five, two, one)
【问题描述】我国身份证号码由数字与字母混合组成。早期身份证由15位数字构成,后来考虑到千年虫问题(15位的身份证号码只能为1900年1月1日到1999年12月31日出生的人编号),所以又增加了18位身份证号码编号规则。最后一位(第18位)校验码的计算方法如下:
第一步:将身份证前17位数分别乘以不同的系数。从第1位到第17位的系数分别为:7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2,将17位数字和系数相乘的结果相加。
第二步:将上一步结果除以11求余数,则余数只可能是0-10,身份证最后一位的对应字符为1、0、X、9、8、7、6、5、4、3、2。
例如余数结果为3,则对应身份证号码的最后一位就是9,如果是10,身份证最后一位便是2。
请根据上述算法判断输入的身份证号是否合法。
【输入形式】一行18位的字符串,代表一个身份证号
【输出形式】如果输入的是合法身份证号,请输出“YES”,否则输出“NO”
【样例输入】110000000000000000
【样例输出】NO
【样例说明】不合法身份证号,输出“NO”
【评分标准】共5个测试用例,全部通过为满分
将字符串每个字符取出
a = input()
str1 = []
for i in range(0, 17):
str1.append(a[i])
str1 = [int(x) for x in str1]
s = 7*str1[0]+9*str1[1]+10*str1[2]+5*str1[3]+8*str1[4]+4*str1[5]+2*str1[6]+1*str1[7]+6*str1[8]+3*str1[9]+7*str1[10]+9*str1[11]+10*str1[12]+5*str1[13]+8*str1[14]+4*str1[15]+2*str1[16]
str2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
str2 = [int(y)for y in str2]
if s % 11 == 0 and int(a[17]) == "1":
print("YES")
elif s % 11 == 1 and a[17] == "0":
print("YES")
elif s % 11 == 2 and a[17] == "X":
print("YES")
elif s % 11 == 3 and a[17] == "9":
print("YES")
elif s % 11 == 4 and a[17] == "8":
print("YES")
elif s % 11 == 5 and a[17] == "7":
print("YES")
elif s % 11 == 6 and a[17] == "6":
print("YES")
elif s % 11 == 7 and a[17] == "5":
print("YES")
elif s % 11 == 8 and a[17] == "4":
print("YES")
elif s % 11 == 9 and a[17] == "3":
print("YES")
elif s % 11 == 10 and a[17] == "2":
print("YES")
else:
print("NO")
【问题描述】
编写函数fac(n),用递归法求出n的阶乘.在程序中使用此函数,将输入的整数n的阶乘求出并输出到控制台.
【输入形式】
控制台输入整数n
【输出形式】
控制台输出n!
【样例输入】
5
【样例输出】
120
【样例说明】
5! = 120
def fac(n):
if n == 0 or n ==1:
return 1
else:
return n*fac(n-1)
if __name__ == '__main__':
n = int(input())
print(fac(n))
从键盘输入一个字符,求出它的前驱和后继字符(按照ASCII码值排序),并按照从小到大的顺序输出这三个字符和对应的ASCII值。
【输入形式】
从键盘输入一个字符
【输出形式】
按两行输出:
第一行按照从小到大的顺序输出这三个字符,并以一个空格隔开;
第二行按照从小到大的顺序输出三个字符对应的ASCII值,并以一个空格隔开。
【输入样例】
b
【输出样例】
a b c 97 98 99
【样例说明】
输入字符b,b的前驱字符是a,后继字符是c,第一行按照从小到大的顺序输出a b c;第二行输出对应的ASCII值97 98 99
chr()是SCII值转字符
ord()是字符转ASCII
n = input()
m = ord(n)
print(chr(m-1), n, chr(m+1))
print(m-1, m, m + 1)