# 12. 计算1到100以内能被7整除但不是偶数的数的个数。 #while语句 summation=0 num=1 while num<=100: if num%7==0 and num%2!=0: summation += 1 num +=1 continue num+=1 print(summation) #for summations=0 for i in range(1,101): if i % 7 == 0 and i % 2 != 0: summations += 1print(summations)
# 13. 计算从1到100临近两个整数的合并依次输出。比如第一次输出3(1+2),第二次输出5(2+3),最后一次输出199(99+100)。 #while语句 summation=0 num=2 while num<=100: summation=num*2-1 print("%d(%d+%d)," % (summation,num-1,num), end="") num+=1 print() #for summations=0 for i in range(2,101): summations =i*2-1 print("%d(%d+%d)," % (summations,i-1,i),# 14. 给定一个整数n,判断是否是质数(质数是只能被1和它自身整除的数) #while语句 n=eval(input("请输入一个数:")) num=2 while num<n: if n%num==0: print("%d不是质数."%n) break num+=1 else: print("%d是质数."%n) #for语句 n=eval(input("请输入一个数:")) for i in range(2,n+1): if i==n: print("%d是质数." % n) elif n%i==0: print("%d不是质数." % n) break# 15. 给定一个不大于9的数n,打印nn乘法表 #while语句 n=eval(input("请输入一个数:")) row=1 while row<=n: num=1 while num<=row: print("%d*%d=%d\t"%(num,row,num*row),end="") num+=1 print() row+=1 # for语句 n=eval(input("请输入一个数:")) for i in range(1,n+1): for j in range(1,i+1): print("%d*%d=%d\t" % (j, i, j * i), end="") print()# 16. 五位数中,对称的数称为回文数,打印所有的回文数并计算个数。如:12321 # while语句 num=10000 while num<100000: num1=str(num) num2=num1[::-1] if num1==num2: print("%d,"%num,end="") num+=1 print() # for语句 for num in range(10000,100000): num1 = str(num) num2 = num1[::-1] if num1 == num2: print("%d," % num,end="")# 17. 给定一个n位(不超过10)的整数,将该数按位逆置,例如给定12345变成54321,12320变成2321. num=eval(input("请输入一个n位(n不超过10)的整数:")) if num>10000000000: print("你输入的数超过10位,请重新输入") num1=str(num) num2=num1[::-1] print(num2) #while num=eval(input("请输入一个n位(n不超过10)的整数:")) if num>10000000000: print("你输入的数超过10位,请重新输入") num1=str(num) subscript=0#下标 num2=0 while subscript<len(num1): a=num1[-(subscript+1)] num2=(num2+int(a))*10#倒序 subscript+=1 num2=str(num2) print(num2[0:len(num2)-1]) #for语句 num=eval(input("请输入一个n位(n不超过10)的整数:")) if num>10000000000: print("你输入的数超过10位,请重新输入") num1=str(num) subscript=0#下标 num2=0 for subscript in range(0,len(num1)): a = num1[-(subscript + 1)] num2 = (num2 + int(a)) * 10 # 倒序 num2=str(num2) print(num2[0:len(num2)-1])# 17. 给定一个n位(不超过10)的整数,将该数按位逆置,例如给定12345变成54321,12320变成2321. num=eval(input("请输入一个n位(n不超过10)的整数:")) if num>10000000000: print("你输入的数超过10位,请重新输入") num1=str(num) num2=num1[::-1] print(num2) #while num=eval(input("请输入一个n位(n不超过10)的整数:")) if num>10000000000: print("你输入的数超过10位,请重新输入") num1=str(num) subscript=0#下标 num2=0 while subscript<len(num1): a=num1[-(subscript+1)] num2=(num2+int(a))*10#倒序 subscript+=1 num2=str(num2) print(num2[0:len(num2)-1]) #for语句 num=eval(input("请输入一个n位(n不超过10)的整数:")) if num>10000000000: print("你输入的数超过10位,请重新输入") num1=str(num) subscript=0#下标 num2=0 for subscript in range(0,len(num1)): a = num1[-(subscript + 1)] num2 = (num2 + int(a)) * 10 # 倒序 num2=str(num2) print(num2[0:len(num2)-1])# 18. 输出所有的三位水仙花数,其各位数字立方和等于该数本身。 # while语句 num=100 while num<1000: unit=num%10 decade=(num//10)%10 hundreds=num//10 if num==(unit**3+unit**3+hundreds**3): print("%d,"%num,end="") num+=1 # for语句 for num in range(100,1000): unit = num % 10 decade = (num // 10) % 10 hundreds = num // 10 if num == (unit ** 3 + unit ** 3 + hundreds ** 3): print("%d," % num, end="")# 19. 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第n次落地时,共经过多少米? # while语句 n=eval(input("请输入掉落的次数(n):")) num=1 high=100 summation=0 while num<=n: summation+=high+high/2 high/=2 num+=1 print("%d次下落后,共经过%d米"%(n,summation))# 20. 给定一个数a,求s=a+aa+aaa+aaaa+aaaaa的值,其中a是一个数字(1-9之间)。例如2+22+222+2222+22222 #while 语句 a=number=number2=eval(input("请输入一个1-9的个位数:")) num=0 summation=0 while num<5: #0 1 summation+=number2#1 1+11 number=number2*10 #10 110 number2=number+a #11 111 num+=1 #1 print(summation) #for语句 a=number=number2=eval(input("请输入一个1-9的个位数:")) num=0 summation=0 for num in range(0,5): summation += number2 # 1 1+11 number = number2 * 10 # 10 110 number2 = number + a # 11 111 print(summation)# 21. 已知 abc+cba=1333, 其中的a,b,c均为一位数,编写一个程序,求出a,b,c分别代表什么数字 # while语句 a=0 while a<=9: b = 0 while b <= 9: c = 0 while c <= 9: num1=a*100+b*10+c num2=c*100+b*10+a if 1333==num1+num2: print("a=%d,b=%d,c=%d"%(a,b,c)) break c+=1 b+=1 a+=1 print() print() # for语句 for a in range(0,10): for b in range(0, 10): for c in range(0, 10): num1 = a * 100 + b * 10 + c num2 = c * 100 + b * 10 + a if 1333 == num1 + num2: print("a=%d,b=%d,c=%d" % (a, b, c)) break
# 22. 给定一个整数n,打印3到n以下的所有质数(质数是只能被1和它自身整除的数) #while语句 n=eval(input("请输入一个数:")) num=3 while num<=n: num2 = 2 while num2<num: if num%num2==0: break num2+=1 else: print("%d,"%num,end="") num+=1 print() #for语句 n=eval(input("请输入一个数:")) for num in range(3,n+1): for num2 in range(2,n+1): if num2==num: print("%d," % num,end="") elif num%num2==0: break