作业1:
输入数,判断这个数是否是质数(要求使用函数 + for循环)
def num_prime(num):
if num < 1:
print(f'请输入大于1的数')
elif num == 2 or num == 3:
print(f'{num}为质数')
else:
for i in range (2,num):
if num % i == 0:
print(f'{num}不是质数')
return 0
print(f'{num}是质数')
while True:
num = int(input('请输入一个数字(输入0结束):'))
if num == 0:
break
else:
num_prime(num)
作业2:求50~150之间的质数是那些?
def num_prime(num1,num2):
for i in range (num1,num2+1):
Flag = True
for k in range (2,i):
if i % k == 0: #判断是不是质数,成立则不是质数
Flag = False
break
if Flag == True:
print(i)
num_prime(50,150)
作业3:打印输出标准水仙花数,输出这些水仙花数
def water_flower():
for i in range (100,1000):
a = i // 100
b = i // 10 % 10
c = i % 10
count = (a**3 + b**3 + c**3)
if count == i:
print(f'{i}是水仙花数')
water_flower()
作业4:验证:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除.
def except_num(num):
num1 = num
num1 = list(num) #将其转化为列表
for i in num1: #通过for循环得到各个位数得值
i = int(i)
num = int(num) - i #减去各个值
if num % 9 == 0:
print(f'{num}可以被整数,该结论可以被验证')
while True:
num = input('请输入一个数,来验证结论(输入\'n\'或\'N\'结束):')
if num == 'n' or num == 'N':
break
else:
except_num(num)
作业5:一个五位数,若在它的后面写上一个7,得到一个六位数A,若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此五位数.
def find_five_num():
for num in range (10000,100000):
A = num + 700000
B = num * 10 + 7
if A / B == 5:
print(f'{num}这个数就是我们要找得数。')
find_five_num()
作业6:有一种最简真分数,它们的分子与分母的乘积都是140,把所有这样的真分数从小到大打印出来
def fraction():
for i in range (1,10):
for j in range (i+1,141):
if i*j == 140:
print('{}/{}'.format(i,j))
fraction()
作业7:某数被80除所得的商,不但是7的倍数,而且用2,3,4,5,6去除余数都是1,求这 个自然数.
def nature_num():
for i in range(1,100000):
num = i / 80
if num % 7 == 0 and num % 2 == 1 and num % 3 == 1 and num % 4 == 1 and num % 5 == 1 and num % 6 == 1:
print(f'{i}是我们要找1000以内的自然数')
nature_num()
作业8:编程求出满足以下条件的三位数:它除以11所得的商等于它各位数字之和
def three_num():
a = num % 10
b = num // 10 % 10
c = num // 100
count = a+b+c
if num / 11 == count:
print(f'这个数为{num}')
for num in range (100,1001):
three_num()
作业9:有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币[10, 8, 5, 3, 27, 99]
#有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币[10, 8, 5, 3, 27, 99]
def coin_num(a):
count = 0
for i in a:
if i % 2 == 0:
b = i // 2
else:
b = i // 2 + 1
count += b
print(count)
a = [10, 8, 5, 3, 27, 99]
coin_num(a)
作业10:求1~100之间不能被3整除的数之和
count = 0
def three():
if num % 3 != 0:
global count
count += num
for num in range (1,101):
three()
print(count)
作业11:给定一个正整数N,找出1到N(含)之间所有质数的总和
#给定一个正整数N,找出1到N(含)之间所有质数的总和
def prime_num(num):
index = 2
for k in range (2,num+1):
for i in range (2,k):
if k % i == 0:
break
index += k
break
print(index)
#print(index)
num = int(input('请输入一个正整数:'))
if num < 1:
print('输入错误!!!')
else:
prime_num(num)
作业12:计算PI(公式如下:PI=4(1-1/3+1/5-1/7+1/9-1…)
def cul() :
ans = 0;add = 1
sign = 1
while(1/add>10**(-6)) :
ans = ans + sign/add
add = add + 2
sign = -sign
else :
ans += sign/add
print("pi = {}".format(ans * 4))
print("pi = %.8f"%(ans * 4))
cul()
作业13:给定一个10个元素的列表,请完成排序(注意,不要使用系统api)
def a(num):
index = 0
count = 0
for i in range(num):
index += num * 10 ** i
print(index)
count += index
print(count)
num = int(input('请输入一个数字:'))
print(a(num))
作业14:合并两个有序数组,合并后还是有序列表
def loop_merge_sort(l1,l2):
tmp = [] #构造一个的新的列表
while len(l1)>0 and len(l2)>0:
if l1[0] <l2[0]: #循环每次比较第一个元素
tmp.append(l1[0]) #tmp添加元素
del l1[0] #l1删除一个,原有的元素自动向前移动一位
else:
tmp.append(l2[0])
del l2[0]
while len(l1)>0:
tmp.append(l1[0])
del l1[0]
while len(l2)>0:
tmp.append(l2[0])
del l2[0]
return tmp
if __name__ == '__main__':
L1=[23,45,67,77,78,80,90]
L2=[4,11,26,33,42,61,80]
new_list=loop_merge_sort(L1,L2)
print(new_list)
作业15:给定一个非负整数数组A,将该数组中的所有偶数都放在奇数元素之前
#给定一个非负整数数组A,将该数组中的所有偶数都放在奇数元素之前
def sort_list(a):
start, end = 0, len(a) - 1
while start < end:
if a[start] % 2 == 0:
start += 1
elif a[end] % 2 == 1:
end -= 1
else:
a[start], a[end] = a[end], a[start]
print(a)
a = [1,2,3,4,5,6]
sort_list(a)
作业16:将10进制数据转换为二进制,并且统计其中的0和1的数量
#将10进制数据转换为二进制,并且统计其中的0和1的数量
def bin_num():
one_count = 0
zero_count = 0
index_bin = bin(index_num)
for i in index_bin[2:]:
print(i)
if i == '0' :
zero_count += 1
elif i == '1':
one_count += 1
print(f'{index_num}的二进制数为{index_bin},它有{one_count}个1,有{zero_count}个0')
index_num = int(input('请输入一个十进制的数:'))
bin_num()
作业17:给定一个数组,已知数组中的元素都是成对出现,
现在数组中只有一个元素没有成对,请找出这个元素。
[1,3,1,2,2,8,8]
def dup(ls):
temp = 0
for i in ls:
temp ^= i
return temp
ls = [1,3,1,2,2,8,8]
print(dup(ls))