[예제 4.6]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | import sys read = sys.stdin.readline def pprint(sortedNum): N = len(sortedNum) sortedNum.append(sortedNum[-1]+1) ans = [] ret = '' oldI = -1 for i in range(N): if sortedNum[i+1] != sortedNum[i]: ans.append([sortedNum[i], i-oldI]) oldI = i sortedNum.pop() for a in ans[:-1]: ret += ('%d^%d +' % (a[0], a[1])) ret += ('%d^%d' % (ans[-1][0], ans[-1][1])) print(ret) def factor(n): if n == 1: return [1] ret = [] for i in range(2, n+1): while n % i == 0: ret.append(i) n /= i pprint(ret) return ret if __name__ == '__main__': print(factor(360)) | cs |
'알고리즘 문제해결전략' 카테고리의 다른 글
[파이썬 | 알고스팟 | MAXSUM] 최대 연속 부분합 찾기 (0) | 2020.05.19 |
---|---|
[파이썬 | 알고리즘 문제해결전략] O(n^2) 정렬 알고리즘 (0) | 2020.04.17 |
[파이썬 | 알고리즘 문제해결전략 | 알고스팟] 록 페스티벌 (0) | 2020.04.16 |