Números amigos y perfectos en C

Source code c uno

[et_pb_section fb_built=»1″ _builder_version=»3.22″][et_pb_row _builder_version=»3.25″ background_size=»initial» background_position=»top_left» background_repeat=»repeat»][et_pb_column type=»4_4″ _builder_version=»3.25″ custom_padding=»|||» custom_padding__hover=»|||»][et_pb_text _builder_version=»4.4.6″ background_size=»initial» background_position=»top_left» background_repeat=»repeat» hover_enabled=»0″]

Vamos a realizar una aplicación que nos averigüe desde un número introducido por teclado, cuales son amigos y cuales perfectos. Para saber que significa esto, me remito a la Wikipedia que dice lo siguiente:

Números amigos: Dos números amigos son dos enteros positivos A y B, tal que A es la suma de todos los divisores de B, y B la suma de todos los divisores de A. La unidad se considera divisor propio, pero no lo es el mismo número.

Por poner un ejemplo, el par de números (220, 284) son amigos porque:

Los divisores propios de 220 son 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 y 110, que suman 284.
Los divisores propios de 284 son 1, 2, 4, 71 y 142, que suman 220.

Números perfectos: Un número perfecto es un número natural que la suma de los divisores de si mismo sin contar el mismo, da de resultado el mismo. En resumen, un número perfecto es aquel que es amigo de si mismo.

Por poner un ejemplo, el número 6 es un número perfecto, ya que la suma de sus divisores (1, 2 y 3) da el mismo número.

Ahora entraremos en materia para con un simple código fuente que busca los números amigos y perfectos, desde 1 hasta un número que se introduzca por teclado.

[/et_pb_text][et_pb_dmb_code_snippet _builder_version=»4.4.6″ code=»I2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkIG1haW4odm9pZCkgewogIGludCBudW0xLG51bTIsaTsKICBpbnQgbnVtZXJvOwoKICBwcmludGYoIkludHJvZHVjZSBlbCBudW1lcm86ICIpOwogIHNjYW5mKCIlZCIsICZudW1lcm8pOwogIGZvcihpPTI7aTw9bnVtZXJvO2krKykgewogICAgbnVtMT1udW1lcm9zKGkpOwogICAgbnVtMj1udW1lcm9zKG51bTEpOwogICAgaWYgKG51bTEgPT0gaSApIHsKICAgICAgcHJpbnRmKCJFbCBudW1lcm8gJWQgZXMgcGVyZmVjdG8gXG4iLGkpOwogICAgfSBlbHNlIGlmIChudW0yID09IGkpIHsKICAgICAgcHJpbnRmKCJFbCBudW1lcm8gJWQgZXMgYW1pZ28gZGUgJWQgXG4iLGksbnVtMSk7CiAgICB9CiAgfQp9CgppbnQgbnVtZXJvcyhpbnQgbnVtKSB7CiAgaW50IGFjdW11bGE9MDsKICBpbnQgaTsKCiAgZm9yIChpPTE7aTw9bnVtO2krKykgewogICAgIGlmICgobnVtICUgaSA9PSAwKSAmJiAoaSAhPSBudW0pKSB7CiAgICAgICAgYWN1bXVsYT1hY3VtdWxhK2k7CiAgICAgfQogIH0KICByZXR1cm4gYWN1bXVsYTsKfQ==» language=»c» style=»codepen-embed» linenums=»on» usetabwidth=»on» tabwidth=»4″ hover_enabled=»0″]I2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkIG1haW4odm9pZCkgewogIGludCBudW0xLG51bTIsaTsKICBpbnQgbnVtZXJvOwoKICBwcmludGYoIkludHJvZHVjZSBlbCBudW1lcm86ICIpOwogIHNjYW5mKCIlZCIsICZudW1lcm8pOwogIGZvcihpPTI7aTw9bnVtZXJvO2krKykgewogICAgbnVtMT1udW1lcm9zKGkpOwogICAgbnVtMj1udW1lcm9zKG51bTEpOwogICAgaWYgKG51bTEgPT0gaSApIHsKICAgICAgcHJpbnRmKCJFbCBudW1lcm8gJWQgZXMgcGVyZmVjdG8gXG4iLGkpOwogICAgfSBlbHNlIGlmIChudW0yID09IGkpIHsKICAgICAgcHJpbnRmKCJFbCBudW1lcm8gJWQgZXMgYW1pZ28gZGUgJWQgXG4iLGksbnVtMSk7CiAgICB9CiAgfQp9CgppbnQgbnVtZXJvcyhpbnQgbnVtKSB7CiAgaW50IGFjdW11bGE9MDsKICBpbnQgaTsKCiAgZm9yIChpPTE7aTw9bnVtO2krKykgewogICAgIGlmICgobnVtICUgaSA9PSAwKSAmJiAoaSAhPSBudW0pKSB7CiAgICAgICAgYWN1bXVsYT1hY3VtdWxhK2k7CiAgICAgfQogIH0KICByZXR1cm4gYWN1bXVsYTsKfQ==[/et_pb_dmb_code_snippet][et_pb_text _builder_version=»4.4.6″ hover_enabled=»0″]Descargar: CÓDIGO FUENTE

La verdad que todavia estoy intentando averiguar porque razón nos hacen realizar estos programas de inicio, supongo que alguna utilidad tendrá en un futuro jejejejeje, supongo que sera para hacernos pensar o buscar información.[/et_pb_text][/et_pb_column][/et_pb_row][/et_pb_section]

Más para explorar

Antiguas noticias
Código Python

Empezando con python

Hace ya un tiempo que llevo pensando en ponerme con Python, su escalada en Lenguajes más queridos (y más usados) en lo referente a mi