Latest web development tutorials

파이썬은 운동 (14)

파이썬 100 리 파이썬 100 리

제목 : 품질 인자의 양의 정수 분해. 예를 들어 : 90 = 2 * 3 * 3 * 5 인쇄 90을 입력합니다.

프로그램 분석 : N 품질 요소의 분해는 먼저 다음 단계에있어서, 가장 작은 소수 번호 k를 발견한다 :
N 정확히 동일한 소수, 프로세스의 품질 인자의 분해가 종료 한 경우 (1)에서는 프린트 할 수있다.
(2) N <> K, k는하지만, N, K의 값을 출력 n을 지수로 나눈 값과 케이한다 나눌 수 있다면, 당신은 새로운 양의 정수 n으로, 첫 번째 단계를 반복합니다.
(3) n이 K로 나눌 수없는 경우, K + 1은 제 1 단계를 반복하여 K의 값으로서 사용된다.

소스 코드 :

#!/usr/bin/python
# -*- coding: UTF-8 -*-

def reduceNum(n):
    print '{} = '.format(n),
    if not isinstance(n, int) or n <= 0 :
        print '请输入一个正确的数字 !'
        exit(0)
    elif n in [1] :
        print '{}'.format(n)
    while n not in [1] : # 循环保证递归
        for index in xrange(2, n + 1) :
            if n % index == 0:
                n /= index # n 等于 n/index
                if n == 1: 
                    print index 
                else : # index 一定是素数
                    print '{} *'.format(index),
                break
reduceNum(90)
reduceNum(100)

위 예제의 출력은 다음과 같습니다

90 =  2 * 3 * 3 * 5
100 =  2 * 2 * 5 * 5

파이썬 100 리 파이썬 100 리