1. ๋ฌธ์
์ซ์ N์ ์๋์ ๊ฐ๋ค.
N=2a x 3b x 5c x 7d x 11e
N์ด ์ฃผ์ด์ง ๋ a, b, c, d, e ๋ฅผ ์ถ๋ ฅํ๋ผ.
[์ ์ฝ ์ฌํญ]
N์ 2 ์ด์ 10,000,000 ์ดํ์ด๋ค.
[์
๋ ฅ]
๊ฐ์ฅ ์ฒซ ์ค์๋ ํ
์คํธ ์ผ์ด์ค์ ๊ฐ์ T๊ฐ ์ฃผ์ด์ง๊ณ , ๊ทธ ์๋๋ก ๊ฐ ํ
์คํธ ์ผ์ด์ค๊ฐ ์ฃผ์ด์ง๋ค.
๊ฐ ํ
์คํธ ์ผ์ด์ค์ ์ฒซ ๋ฒ์งธ ์ค์ N ์ด ์ฃผ์ด์ง๋ค.
10
6791400
1646400
1425600
8575
185625
6480
1185408
6561
25
330750
[์ถ๋ ฅ]
์ถ๋ ฅ์ ๊ฐ ์ค์ '#t'๋ก ์์ํ๊ณ , ๊ณต๋ฐฑ์ ํ ์นธ ๋ ๋ค์ ์ ๋ต์ ์ถ๋ ฅํ๋ค.
(t๋ ํ
์คํธ ์ผ์ด์ค์ ๋ฒํธ๋ฅผ ์๋ฏธํ๋ฉฐ 1๋ถํฐ ์์ํ๋ค.)
#1 3 2 2 3 1
#2 6 1 2 3 0
#3 6 4 2 0 1
#4 0 0 2 3 0
#5 0 3 4 0 1
#6 4 4 1 0 0
#7 7 3 0 3 0
#8 0 8 0 0 0
#9 0 0 2 0 0
#10 1 3 3 2 0
2. ์์ค์ฝ๋
num = int(input())
for i in range(1,num+1):
a = 0
b = 0
c = 0
d = 0
e = 0
n = int(input())
while n!=1:
if n%11 == 0:
e += 1
n = n//11
elif n%7 == 0:
d += 1
n = n//7
elif n%5 == 0:
c += 1
n = n//5
elif n%3 == 0:
b += 1
n = n//3
elif n%2 == 0:
a += 1
n = n//2
print('#%d' %i,a,b,c,d,e)
3. ์์ค์ฝ๋ ์ค๋ช
test case์ ๊ฐฏ์๋ฅผ ๋ณ์num์ ์
๋ ฅ๋ฐ๋๋ค.
test case์ ๊ฐฏ์๋งํผ ํ๋ก๊ทธ๋จ์ ๋๋ ค์ผํ๋ฏ๋ก, 1๋ถํฐ num๊น์ง for๋ฌธ์ ๋๋ฆฐ๋ค.
์
๋ ฅ๋ฐ๋ ์ซ์๋ฅผ ๋ณ์n์ด๋ผ๊ณ ํ๊ณ , a,b,c,d,e๋ n์ ์์ธ์ ๋ถํด ํ์ ๋,
๊ฐ๊ฐ 2,3,5,7,11์ ์ง์์ ํด๋นํ๋ค.
ํ์ฌ ๊ตฌํ๋ ค๋ ๊ฒ์ด a,b,c,d,e ์ด๋ฏ๋ก ์๋ก์ด test case๋ฅผ ์คํํ ๋์ ๋๋นํด
๊ฐ๊ฐ์ ๋ชจ๋ 0์ผ๋ก ์ด๊ธฐํํด์ฃผ๊ณ ,
2,3,4,5,7,11๋ก ๋๋์์ ๋ ๋๋จธ์ง๊ฐ 0์ด๋ฉด ๊ฐ ํด๋น ์ง์์ 1์ ๋ํด์ค๋ค.
๊ทธ๋ฆฌ๊ณ n์ ๋๋๊ธฐ๋ฅผ ์คํํ ํ์ ํด๋นํ๋ ๋ชซ์ผ๋ก ๋ฐ๊ฟ์ค๋ค.
๊ทธ ๋ชซ์ด 1์ด ๋ ๋๊น์ง while๋ฌธ์ ์คํํ ํ,
๋ชซ์ด 1์ด๋๋ฉด ์ข
๋ฃํ๊ณ ์ถ๋ ฅํ๋ค.
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SW Expert Academy] #1986. ์ง๊ทธ์ฌ๊ทธ ์ซ์ - Python (0) | 2019.11.06 |
---|---|
[SW Expert Academy] #2068. ์ต๋์ ๊ตฌํ๊ธฐ - C (0) | 2019.11.06 |
[LeetCode] #198. House Robber - Python (0) | 2019.11.06 |
[LeetCode] #746. Min Cost Climbing Stairs - Python (0) | 2019.11.06 |
[LeetCode] #1025. Divisor Game - Python (0) | 2019.11.06 |