# -*- coding:utf-8 -*- __author__ = 'gjw' __time__ = '2018/1/5 0005 ä¸å 10:48' # é¢ç®ï¼å°ä¸ä¸ªæ£æ´æ°åè§£è´¨å æ°ãä¾å¦ï¼è¾å ¥90,æå°åº90=2*3*3*5ã """ ç¨åºåæï¼å¯¹nè¿è¡åè§£è´¨å æ°ï¼åºå æ¾å°ä¸ä¸ªæå°çè´¨æ°kï¼ç¶åæä¸è¿°æ¥éª¤å®æï¼ (1)妿è¿ä¸ªè´¨æ°æ°çäºnï¼å说æåè§£è´¨å æ°çè¿ç¨å·²ç»ç»æï¼æå°åºå³å¯ã (2)妿n<>kï¼ä½nè½è¢«kæ´é¤ï¼ååºæå°åºkçå¼ï¼å¹¶ç¨né¤ä»¥kçå,ä½ä¸ºæ°çæ£æ´æ°ä½ n,é夿§è¡ç¬¬ä¸æ¥ã (3)妿nä¸è½è¢«kæ´é¤ï¼åç¨k+1ä½ä¸ºkçå¼,é夿§è¡ç¬¬ä¸æ¥ã """ def reduceNum(n): if not isinstance(n, int) or n<=0: print("æ¨è¾å ¥çæ°åæè¯¯") exit(0) else: l = [] r = n if n == 1: print(1, end="") while r not in [1]: for i in range(2, int(n/2)+1): if r%i == 0: r /= i l.append(i) break if r == n: l = [1, r] r = 1 l = sorted(l) for i, v in enumerate(l): if i == 0: print(str(n)+" = " + str(v), end="") else: print(" * " + str(v), end="") reduceNum(64)