辗转相除法求最大公约数
a = eval(input("请输入一个整数:"))
b = eval(input("请输入另一个整数:"))
m = min(a, b)
M = max(a, b)
while True:
if M % m != 0:
m = M % m
M = min(a,b)
a = M
b = m
else:
break
print(m)
num1 = int(input("请输入第一个数字:"))
num2 = int(input("请输入第一个数字:"))
m = max(num1, num2)
n = min(num1, num2)
r = m % n
while r != 0:
m = n
n = r
r = m % n
print(num1, "和", num2, "的最大公约数为", n)
text = input('请输入字符:') # 界面:让用户输入字符
zgeshu = ygeshu = sgeshu = qgeshu = kgeshu = 0 # 设置初始值,以便用于for in循环
for i in text:
if 40869 >= ord(i) >= 19968: # 本处使用十进制,简单。或者使用十六进制,再用ord('\u9fa5')转换为十进制的unicode编码;
zgeshu += 1
elif 57 >= ord(i) >= 48:
sgeshu += 1
elif 122 >= ord(str.lower(i)) >= 97: # 直接使用str.lower()函数,将英文字符统一为小写,节省代码;
ygeshu += 1
elif i == ' ':
kgeshu += 1
else:
qgeshu += 1
print('中文字符个数为{}'.format(zgeshu), '\n'+'数字字符个数为{}'.format(sgeshu), '\n'+'英文字符个数为{}'.format(ygeshu), '\n'+'空格字符个数为{}'.format(kgeshu), '\n'+'其他字符个数为{}'.format(qgeshu))
from random import *
change = unchange = 0
for i in range(1000):
ans = randint(0,2)
gus = randint(0,2)
if ans == gus:
unchange += 1
else:
change += 1
print('不换且成功的概率是:{}'.format(unchange/1000))
print('换且成功的概率是:{}'.format(change/1000))
网友评论