Python-Übungsbeispiel 14

Python 100例Python 100 Beispiele

Problem:Zerlege eine positive ganze Zahl in Primfaktoren. Zum Beispiel: Eingabe 90, gib 90=2*3*3*5 aus.

Programmanalyse:Um n in Primfaktoren zu zerlegen, finden Sie zuerst eine kleinste Primzahl k und befolgen Sie dann die folgenden Schritte:
(1) Wenn diese Primzahl genau gleich n ist, bedeutet das, dass der Prozess der Primfaktorzerlegung beendet ist; geben Sie sie einfach aus.
(2) Wenn n<>k, aber n durch k teilbar ist, dann geben Sie den Wert von k aus und verwenden Sie den Quotienten von n geteilt durch k als neue positive ganze Zahl n, wiederholen Sie den ersten Schritt.
(3) Wenn n nicht durch k teilbar ist, verwenden Sie k+1 als Wert von k und wiederholen Sie den ersten Schritt.

Programmquellcode:

Beispiel (Python 2.0+)

#!/usr/bin/python # -*- coding: UTF-8 -*- def reduceNum(n): print '{} = '.format(n), if not isinstance(n, int) or n <= 0 : print 'Bitte geben Sie eine korrekte Zahl ein!' exit(0) elif n in [1] : print '{}'.format(n) while n not in [1] : # Schleife stellt Rekursion sicher for index in xrange(2, n + 1) : if n % index == 0: n /= index # n ist gleich n/index if n == 1: print index else : # index muss eine Primzahl sein print '{} *'.format(index), break reduceNum(90) reduceNum(100)

Beispiel (Python 3.0+)

#!/usr/bin/python3 def reduceNum(n): print ('{} = '.format(n), end=" ") if not isinstance(n, int) or n <= 0 : print ('Bitte geben Sie eine korrekte Zahl ein!') exit(0) elif n in [1] : print ('{}'.format(n)) while n not in [1] : # Schleife gewährleistet Rekursion for index in range(2, n + 1) : if n % index == 0: n //= index # n ist gleich n//index if n == 1: print (index ) else : # index muss eine Primzahl sein print ('{} *'.format(index), end=" ") break reduceNum(90) reduceNum(100)

Das Ausgabeergebnis des obigen Beispiels ist:

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

Python 100例Python 100 Beispiele

Weitere Erweiterungen