PythonでNumber Factory

f:id:g_YUYUYU:20140429202027j:plain

コード

def checkio(number):
	n = prime_decomposition(number)
	n = check_prime(n)
	if n != 0:
		n = rounding_numbers(n)
		n = "".join(map(str,n))
	print int(n)

def check_prime(number):
	if len(number) == 1 or max(number) > 10:
		return 0
	else:
		return number

def rounding_numbers(number):
	t = 0
	b = len(number)
	while 1:
		sorted(number)
		if number[0] * number[1] < 10:
			number[0] = number[0] * number[1]
			del number[1]
		elif number[0] == number[1] and number[0]*number[1] < 10:
			number[0] *= number[0]
			del number[1]
		else:
			number.append(number[0])
			del number[0]
		if t > b:
			break
		t+=1
	number.sort()
	return number

def prime_decomposition(n):
	i = 2
	table = []
	while i * i <= n:
		while n % i == 0:
			n /= i
			table.append(i)
		i += 1
	if n > 1:
		table.append(n)
	return table

if __name__ == '__main__':
	checkio(1024)
	checkio(125)