Autor Tema: Número primo

0 Usuarios y 1 Visitante están viendo este tema.

27 Agosto, 2012, 10:11 pm
Leído 2074 veces

mackleen

  • $$\Large \color{#6a84c0}\pi$$
  • Mensajes: 8
  • Karma: +0/-0
  • Sexo: Masculino
saludos

amigos tengo un ejercicio que me a puesto pensar mucho se trata de un diagrama de flujo que me imprima si un numero es primo ó no es primo.

necesito una guía para poder desarrollar este algoritmo.

05 Septiembre, 2012, 06:38 am
Respuesta #1

Carolina Herschel

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 383
  • Karma: +0/-0
  • Sexo: Femenino
Hola

Recuerda que un número es primo si y sólo si es divisible únicamente por él mismo y por el 1, así que lo básico para saber si un número \( n \) es primo o no, es revisar sus divisores. Lo que debes hacer es ir recorriendo los números desde \( i=2,\ldots,n-1 \) y encontrar el resto de la división entera entre ese \( i \) y \( n \). Si ese resto es cero, significa que ese número divide a \( n \), por lo que éste no sería primo. Si no es cero, sigues con el \( i+1 \), y así sucesivamente.

También ten en cuenta que no hace falta chequear hasta el \( n-1 \), sino que basta hasta el \( n/2 \), pero tendrías que justificarlo si así te lo piden.

Espero que te haya ayudado,

Saludos.  ;D
"Math is like love -- a simple idea but it can get complicated."

05 Septiembre, 2012, 04:53 pm
Respuesta #2

pierrot

  • pabloN
  • Moderador Global
  • Mensajes: 3,447
  • País: uy
  • Karma: +0/-0
  • Sexo: Masculino
También ten en cuenta que no hace falta chequear hasta el \( n-1 \), sino que basta hasta el \( n/2 \), pero tendrías que justificarlo si así te lo piden.

En realidad basta ir hasta \( \lfloor\sqrt{n}\rfloor \) porque si \( n \) es compuesto es fácil ver que debe existir un primo \( p\leq\sqrt{n} \) tal que \( p|n \). Con esta ligera modificación se ahorrarían muchísimas iteraciones en caso de ser \( n \) un primo muy grande.

Añado: El algoritmo que propone Carolina para determinar si un número \( n \) es o no es primo consiste básicamente en tratar de factorizarlo. Si no se puede factorizar, concluyo que \( n \) es primo. Sin embargo, muchos tests de primalidad están orientados a tratar de identificar si un número es o no primo sin intentar factorizarlo.
$_="loe  hnachaPkr erttes,urJ";$j=0;for($i=0;s/(.)(.{$j})$//;$i++){$_=$2.$_,$j+=1-$i%2,print$1}print