Skip to content

Commit

Permalink
adicionando algoritmo de numeros perfeitos
Browse files Browse the repository at this point in the history
  • Loading branch information
annacruz committed Apr 15, 2011
1 parent e594ee1 commit d5a60e5
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 0 deletions.
36 changes: 36 additions & 0 deletions math/perfect-numbers/perfectnumber.py
@@ -0,0 +1,36 @@
# encoding: utf-8
"""
Números perfeitos
Autor:
?
Colaborador:
Anna Cruz (anna.cruz@gmail.com)
Tipo:
math, number-theory
Descrição:
Esse algoritmo serve para verificar se um número é perfeito ou não. Números perfeitos são aqueles cuja soma dos divisores (exceto ele mesmo) é igual ao próprio número, como por exemplo 6, cujos divisores são 1, 2 e 3 e 1+2+3 = 6
Complexidade:
?
Dificuldade:
fácil
Referências:
http://en.wikipedia.org/wiki/Perfect_numbers
"""

def calc_perf(number):
counter = 1
divisors = []
sumarize = 0
while counter <= number/2:
if number%counter == 0:
divisors.append(counter)
counter += 1
for divisor in divisors:
temp = divisor
sumarize += divisor
if sumarize == number:
print "This is a perfect number"
else:
print "This is not a perfect number try again"

calc_perf(8128)
38 changes: 38 additions & 0 deletions math/perfect-numbers/perfectnumber.rb
@@ -0,0 +1,38 @@
# encoding: utf-8

=begin
Números perfeitos
Autor:
?
Colaborador:
Anna Cruz (anna.cruz@gmail.com)
Tipo:
math, number-theory
Descrição:
Esse algoritmo serve para verificar se um número é perfeito ou não. Números perfeitos são aqueles cuja soma dos divisores (exceto ele mesmo) é igual ao próprio número, como por exemplo 6, cujos divisores são 1, 2 e 3 e 1+2+3 = 6
Complexidade:
?
Dificuldade:
fácil
Referências:
http://en.wikipedia.org/wiki/Perfect_numbers
=end


def calc_perf(number)
counter = 1
divisors = []
sumarize = 0
while counter <= number/2 do
divisors.push(counter) unless number%counter != 0
counter += 1
end
sum = divisors.inject(:+)
if sum == number
puts "This is a perfect number"
else
puts "This is not a perfect number"
end
end

calc_perf(8128)

0 comments on commit d5a60e5

Please sign in to comment.