Dice se un numero è primo, altrimenti lo scompone in fattori primi         

                

                                        
#!/usr/bin/env python
#file primo.py

import sys
import math
def numeroprimo (n):
    p=True
    for i in range (2,n):
        if (n%i==0):
           p=False
    if p:
         print (" Il numero è Primo ")
    else:
         print (" Il numero non è Primo ")
         print ( )
    return (p)

def scomposizione (n):
   
    p=n
    i = 2
    primo = True
    print ("  ", n, "=", end=" ")
    while (i < n/2):
        if (p%i==0):
           if (primo): print(" " , i, end=" ")
           else: print (" * ",i, end=" ")
           p=p/i
           i=i-1
           primo=False
        i=i+1
        

#Programma Principale
print ( )
print("Il Programma ti dice se un numero è primo, altrimenti scrive la sua fattorizzazione ")
print ( )
print ( )
n = int (input (" Dammi il numero "))
print( )
primo = numeroprimo(n)
if (primo==False):
    scomposizione (n)
print ( )
print ( )