描述????????????????????????????????????????????????????????????????????????????????????????????????????????????????
編程找出N(即小于等于N)的所有素?cái)?shù)。????????????????????????????????????????????????????????????????????????????????????????????????????????????????
輸入格式????????????????????????????????????????????????????????????????????????????????????????????????????????????????
輸入一個(gè)正整數(shù)????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
輸出格式????????????????????????????????????????????????????????????????????????????????????????????????????????????????
在同一行中從小到大依次輸出不大于n的全部素?cái)?shù),每個(gè)數(shù)字后面一個(gè)空格。????????????????????????????????????????????????????????????????????????????????????????????????????????????????
示例 1????????????????????????????????????????????????????????????????????????????????????????????????????????????????
輸入:97
輸出:2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
答案如下:
def is_prime(n):
"""判斷素?cái)?shù)的函數(shù),接收一個(gè)正整數(shù)為參數(shù),參數(shù)是素?cái)?shù)時(shí)返回True,否則返回False
減小判定區(qū)間,減少循環(huán)次數(shù),提升效率"""
if n < 2:
return False # 0、1、負(fù)數(shù)以及偶數(shù)都不是素?cái)?shù)
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0: # 能被2到其n-1之間的數(shù)整除的數(shù)不是素?cái)?shù)
return False
else:
return True # for循環(huán)正常結(jié)束,未遇到return的數(shù)是素?cái)?shù)
def output_prime(number):
"""接收一個(gè)正整數(shù)為參數(shù),遍歷從0到number之間的所有整數(shù)
在一行中輸出不大于number的所有素?cái)?shù),函數(shù)無(wú)返回值"""
for i in range(number + 1): # 遍歷小于n的整數(shù)
if is_prime(i): # i為素?cái)?shù)時(shí)輸出i
print(i, end=' ') # 輸出后不換行,空格分隔輸出
positive_int = int(input()) # 輸入一個(gè)正整數(shù)
output_prime(positive_int) # 調(diào)用無(wú)返回值函數(shù),不需要用print()
?哥德巴赫猜想是這個(gè):
描述????????????????????????????????????????????????????????????????????????????????????????????????????????????????
1742年,哥德巴赫給歐拉的信中提出了以下猜想“任一大于2的整數(shù)都可寫(xiě)成三個(gè)質(zhì)數(shù)之和”。常見(jiàn)的猜想陳述為歐拉的版本,即任一大于2的偶數(shù)都可寫(xiě)成兩個(gè)素?cái)?shù)之和,亦稱(chēng)為“強(qiáng)哥德巴赫猜想”或“關(guān)于偶數(shù)的哥德巴赫猜想”。比如:24=5+19,其中5和19都是素?cái)?shù)。????????????????????????????????????????????????????????????????????????????????????????????????????????????????
輸入一個(gè)正整數(shù)N,當(dāng)輸入為偶數(shù)時(shí),分行按照格式“N = p + q”輸出N的所有素?cái)?shù)分解,其中p 、?q均為素?cái)?shù)且p?≤ q。當(dāng)輸入為奇數(shù)或N<4時(shí),輸出'Data error!' 。????????????????????????????????????????????????????????????????????????????????????????????????????????????????
輸入格式????????????????????????????????????????????????????????????????????????????????????????????????????????????????
輸入一個(gè)正整數(shù)????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
輸出格式????????????????????????????????????????????????????????????????????????????????????????????????????????????????
當(dāng)輸入為偶數(shù)時(shí),分行按照格式“N = p + q”輸出N的所有素?cái)?shù)分解,其中p 、?q均為素?cái)?shù)且p?≤ q。當(dāng)輸入為奇數(shù)或N<4時(shí),輸出'Data error!' 。????????????????????????????????????????????????????????????????????????????????????????????????????????????????
示例 1????????????????????????????????????????????????????????????????????????????????????????????????????????????????
輸入:30
輸出:
30=7+23
30=11+19
30=13+17
示例 2????????????????????????????????????????????????????????????????????????????????????????????????????????????????
輸入:77
輸出:
Data error!
def is_prime(n):
"""判斷素?cái)?shù)的函數(shù),接收一個(gè)正整數(shù)為參數(shù),參數(shù)是素?cái)?shù)時(shí)返回True,否則返回False"""
if n < 2:
return False # 0、1、負(fù)數(shù)以及偶數(shù)都不是素?cái)?shù)
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0: # 能被2到其n-1之間的數(shù)整除的數(shù)不是素?cái)?shù)
return False
else:
return True # for循環(huán)正常結(jié)束,未遇到return的數(shù)是素?cái)?shù)
def goldbach_conjecture(num):
""" 哥德巴赫猜想, 接收一個(gè)不小于4的正整數(shù)為參數(shù)。
當(dāng)參數(shù)為不小于4的偶數(shù)時(shí),將其分解為兩個(gè)素?cái)?shù)的加和,按小數(shù)+數(shù)的格式輸出。
有多種組合時(shí)全部輸出,但不輸出重復(fù)的組合,例如輸出8=3+5,不輸出8=5+3。
參數(shù)為奇數(shù)或小于4時(shí),輸出'Data error!'
"""
if num % 2 == 0 and num >= 4: # 只判定偶數(shù)
for i in range(num // 2+1): # 超過(guò)num // 2的組合為重復(fù)組合
if is_prime(i) and is_prime(num - i):
print(f"{num}={i}+{num-i}")
else:
print('Data error!')
if __name__ == '__main__':
positive_even = int(input()) # 輸入一個(gè)正數(shù)
goldbach_conjecture(positive_even)
?撲克牌游戲是這個(gè):
描述
本題限定用以下方法打亂序列中的元素
random.shuffle()
?幾個(gè)人用一副撲克牌玩游戲,游戲過(guò)程通常有洗牌、發(fā)牌、理牌等動(dòng)作,編寫(xiě)程序模擬游戲過(guò)程。新牌花色順序?yàn)?、?、?、?,花色相同時(shí)按2、3、4、5、6、7、8、9、10、J、Q、K、A,最后是小王和大王,小王用'jokers'、大王用 'JOKERS'表示。????????????????????????????????????????????????????????????????????????????????????????????????????????????????
按以下要求編寫(xiě)程序:????????????????????????????????????????????????????????????????????????????????????????????????????????????????
- 按順序輸出新牌
- 洗牌
- 按洗好的順序輸出洗過(guò)的牌
- 將牌輪流分給參與游戲的人,按分牌的順序輸出每個(gè)人手上的牌
- 對(duì)每個(gè)人手上的牌升序排序并輸出
- 輸出時(shí),每張牌間用空格分隔
輸入
輸入一個(gè)正整數(shù)表示參與游戲的人數(shù),題目限定使每個(gè)人分到的牌數(shù)相同,即人數(shù)為54的約數(shù)????????????????????????????????????????????????????????????????????????????????????????????????????????????????
輸入一個(gè)正整數(shù)表示隨機(jī)數(shù)種子,本題使用隨機(jī)數(shù)種子保證產(chǎn)生序列的穩(wěn)定性來(lái)完成自動(dòng)評(píng)測(cè)????????????????????????????????????????????????????????????????????????????????????????????????????????????????
輸出
按順序輸出新牌
按洗好的順序輸出洗過(guò)的牌
按分牌的順序輸出每個(gè)人手上的牌
輸出每個(gè)人手上升序排序的牌????????????????????????????????????????????????????????????????????????????????????????????????????????????????文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-417663.html
輸入輸出示例
輸入 | 輸出 | |
示例 1 | |
|
答案如下:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-417663.html
import random
def start():
"""初始順序,返回元素為字符串的列表"""
cards_start = [i + j for i in desigh for j in num] + ghost
return cards_start
def shuffle_cards(cards_start):
"""打亂順序,返回元素為字符串的列表"""
random.shuffle(cards_start)
return cards_start
def traver(cards_shuffle, m):
"""發(fā)牌給m個(gè)人,返回二維列表"""
person = []
for i in range(m):
person.append(cards_shuffle[i::m])
return person
def sort_cards(person, m):
"""對(duì)m個(gè)人手上的牌進(jìn)行升序排序,花色按黑紅梅方,牌面按點(diǎn)數(shù),大王最大,小王第二大"""
person_sort = []
for i in range(m):
if ('jokers' in person[i]) and ('JOKERS' in person[i]):
person[i].remove('jokers')
person[i].remove('JOKERS')
person_sort.append(sorted(person[i], key=lambda x: (desigh.index(x[0]), num.index(x[1:])))+['jokers', 'JOKERS'])
elif 'jokers' in person[i]:
person[i].remove('jokers')
person_sort.append(sorted(person[i], key=lambda x: (desigh.index(x[0]), num.index(x[1:])))+['jokers'])
elif 'JOKERS' in person[i]:
person[i].remove('JOKERS')
person_sort.append(sorted(person[i], key=lambda x: (desigh.index(x[0]), num.index(x[1:])))+['JOKERS'])
else:
person_sort.append(sorted(person[i], key=lambda x: (desigh.index(x[0]), num.index(x[1:]))))
return person_sort
if __name__ == '__main__':
desigh = ['?', '?', '?', '?'] # 表示黑桃、紅桃、梅花、方塊
num = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A']
ghost = ['jokers', 'JOKERS']
n = int(input()) # 輸入?yún)⑴c游戲的人數(shù)
s = int(input())
random.seed(s)
print(f'參與游戲的人數(shù):{n}')
cards = start()
print('新牌順序')
print(*cards)
cards_after = shuffle_cards(cards)
print('洗牌順序')
print(*cards_after)
cards_n = traver(cards_after, n)
print('每個(gè)人手上分到的牌')
for i in range(n):
print(*cards_n[i])
cards_sort = sort_cards(cards_n, n)
print('每個(gè)人手上排序的牌')
for i in range(n):
print(*cards_sort[i])
到了這里,關(guān)于python123輸出N以?xún)?nèi)的所有素?cái)?shù)&哥德巴赫猜想&撲克牌游戲的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!