10月15python

【问题描述】如何判断一个数是否为素数?当输入数据小于等于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)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值