Números amigos
De nuevo mirando los tan creativos nombres que le ponen a los tipos de números, me encontré con éstos: los números amigos.
¿Qué son?
Los números amigos son dos enteros positivos a y b, cuya suma de los divisores de b da como resultado a y viceversa.
Por ejemplo 284 y 220 son números amigos ya que:
- Divisores de 220: 1 + 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 + 55 + 110 = 284.
- Divisores de 284: 1 + 2 + 4 + 71 + 142 = 220.
He programado un script en Ruby que pide dos números y dice si son amigos o no.
def amicable_numbers(inum_a,inum_b) i = 1 x = 1 su_a = 0 su_b = 0 while (i < inum_a) if (inum_a % i == 0) su_a += i end i += 1 end while (x < inum_b) if (inum_b % x == 0) su_b += x end x += 1 end if (su_a == inum_b) && (su_b == inum_a) return true else return false end end puts " --- Amicable Numbers --- --- www.daw-labs.com --- - www.cibernodo.net - " print "1 > " num_a = gets.chomp print "2 > " num_b = gets.chomp puts "Numeros: 1 = #{num_a} 2 = #{num_b}" num_a = num_a.to_i num_b = num_b.to_i if amicable_numbers(num_a,num_b) puts "Los numeros son amigos" else puts "Los numeros no son amigos" end
| Este artículo fue publicado por WindHack el 29 agosto, 2010 a las 1:11 PM, y está archivado en Programación, Ruby. Sigue las respuestas a esta entrada a través de RSS 2.0. Puedes dejar un comentario o enviar un trackback desde tu propio sitio. |





