문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만 듭니다. 만들어진 자연수와 그 자연수의 약수 개수를 출력합니다.
만약 “t0e0a1c2h0er”에서 숫자만 추출하면 0, 0, 1, 2, 0이고 이것을 자연수를 만들면 120이 됩니다.즉첫자리0은자연수화할때무시합니다. 출력은120를출력하고,다음줄에120 의 약수의 개수를 출력하면 됩니다.
추출하여 만들어지는 자연수는 100,000,000을 넘지 않습니다.
g0en2Ts8eSoft
28
6
[내 코드]
N=str(input())
def divisor_num(x):
count=0
for i in range(1,x+1):
if x%i==0:
count+=1
return count
num=[]
for i in range(len(N)):
if N[i]>='0' and N[i]<='9':
num.append(N[i])
count=0
res=0
for i in range(len(num)):
res+=int(num[i])*(10**(len(num)-i-1))
print(res)
print(divisor_num(res))
- 약수의 갯수를 구하는 함수 divisor_num정의
- for문을 이용해 입력값 중 숫자만 list num에 삽입
- num리스트를 정수형태로 변환한 후 함수 divisor_num를 이용해서 약수의 갯수 추출
[해설코드]
s=input()
res=0
for x in s:
if x.isdecimal():
res=res*10+int(x)
print(res)
cnt=0
for i in range(1,res+1):
if res%i==0:
cnt+=1
print(cnt)