PAT-python-1096 大美数
生活随笔
收集整理的這篇文章主要介紹了
PAT-python-1096 大美数
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
若正整數(shù) N 可以整除它的 4 個(gè)不同正因數(shù)之和,則稱這樣的正整數(shù)為“大美數(shù)”。本題就要求你判斷任一給定的正整數(shù)是否是“大美數(shù)”。
輸入格式:
輸入在第一行中給出正整數(shù) K(≤10),隨后一行給出 K 個(gè)待檢測(cè)的、不超過(guò) 10^4的正整數(shù)。
輸出格式:
對(duì)每個(gè)需要檢測(cè)的數(shù)字,如果它是大美數(shù)就在一行中輸出 Yes,否則輸出 No。
輸入樣例:
3
18 29 40
輸出樣例:
Yes
No
Yes
解法
因?yàn)轭}目里k<11嘛,所以直接寫四層循環(huán)暴力即可。。注意,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)# 避免壓入相同的數(shù)字,比如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")總結(jié)
以上是生活随笔為你收集整理的PAT-python-1096 大美数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 每天学点GDB 12
- 下一篇: Python深度学习“四大名著”之一全新