PAT-python-1096 大美数
生活随笔
收集整理的這篇文章主要介紹了
PAT-python-1096 大美数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
若正整數 N 可以整除它的 4 個不同正因數之和,則稱這樣的正整數為“大美數”。本題就要求你判斷任一給定的正整數是否是“大美數”。
輸入格式:
輸入在第一行中給出正整數 K(≤10),隨后一行給出 K 個待檢測的、不超過 10^4的正整數。
輸出格式:
對每個需要檢測的數字,如果它是大美數就在一行中輸出 Yes,否則輸出 No。
輸入樣例:
3
18 29 40
輸出樣例:
Yes
No
Yes
解法
因為題目里k<11嘛,所以直接寫四層循環暴力即可。。注意,a整除b就是 b% a == 0。
from math import sqrt n = int(input()) nums = [int(i) for i in input().split()] for num in nums:# 求因子factors = []for i in range(1,int(sqrt(num))+1):if num % i == 0:m = num // ifactors.append(i)# 避免壓入相同的數字,比如25if m != i:factors.append(num // i)fn = len(factors)if fn < 4:print("No")continueflag = Falsefor i in range(fn-3):for i1 in range(i+1, fn-2):for i2 in range(i1+1, fn-1):for i3 in range(i2+1, fn):s = factors[i] + factors[i1] + factors[i2] + factors[i3]if s % num == 0:print("Yes")#print("%d %d %d %d"%(factors[i], factors[i1], factors[i2], factors[i3]))flag = Truebreakif flag: breakif flag: breakif flag: breakif flag == False:print("No")總結
以上是生活随笔為你收集整理的PAT-python-1096 大美数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 每天学点GDB 12
- 下一篇: 如何解决电脑弹窗广告?