Primeira vez aqui? Seja bem vindo e cheque o FAQ!
x

Como implementar um programa para fatorar um número?

+1 voto
2,149 visitas
perguntada Mar 18, 2016 em Programação Computacional por danielcajueiro (6,051 pontos)  
Compartilhe

1 Resposta

+1 voto
respondida Mar 18, 2016 por danielcajueiro (6,051 pontos)  

Uma implementação simples em Python:

import math

def factor(n):
  if ( n == 0):
    return None
  elif(n==1):
      return 1
  else:    
      theFactors = []
      for i in range(2,n+1):          
          while n % i == 0:
              n = n/i
              theFactors.append(i)
      return theFactors


if __name__ == '__main__':
    print factor(1001)
comentou Mar 21 por Carla Ávila (1 ponto)  
Não estou conseguindo implementar este código no Python. A mensagem de erro é a seguinte:
>>> import math
>>> def factor(n):
...   if ( n == 0):
...     return None
...   elif(n==1):
...       return 1
...   else:
...       theFactors = []
...       for i in range(2,n+1):
...           while n % i == 0:
...               n = n/i
...               theFactors.append(i)
...      return theFactors
  File "<stdin>", line 12
    return theFactors
                    ^
IndentationError: unindent does not match any outer indentation level
>>>       return theFactors
  File "<stdin>", line 1
    return theFactors
...