# n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수는 완전수이다.
whileTrue:n=int(input())ifn==-1:breakelse:arr=[]temp=0foriinrange(1,n+1):ifn%i==0:arr.append(i)temp+=itemp-=nifn==temp:print(f"{n} = {arr[0]}",end="")foriinrange(1,len(arr)-1):print(f" + {arr[i]}",end="")print("")else:print(f"{n} is NOT perfect.")
1978 - 소수 찾기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
N=int(input())arr=list(map(int,input().split(" ")))resume=0defis_prime_number(x):foriinrange(2,x):ifx%i==0:returnFalse# 소수 아님
returnTrueforiinarr:ifi==1:continueifis_prime_number(i)==True:resume+=1print(resume)
importmathnum_min=int(input())n=int(input())arr=[Trueforiinrange(n+1)]# n만큼의 배열을 만들고 그 수를 전부 True로 채워줌
# 쉬운 방법에서 n의 제곱근(가운데 약수)만큼 확인해도 답이 나오는데 지장이 없어서 math.sqrt(n) 활용해 코드 개선
foriinrange(2,int(math.sqrt(n))+1):ifarr[i]==True:# i가 소수일 때(남은 수)
j=2# 배수
whilei*j<=n:arr[i*j]=False# 수를 False로 바꿔줌
j+=1temp=[]foriinrange(2,n+1):ifarr[i]andi>=num_min:temp.append(i)iftemp==[]:print(-1)else:print(sum(temp))print(temp[0])
댓글남기기