elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  AYUDA! Verificar si un numero es par/impar , compuesto/primo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: AYUDA! Verificar si un numero es par/impar , compuesto/primo  (Leído 1,686 veces)
NicoSanhueza

Desconectado Desconectado

Mensajes: 9


Ver Perfil
AYUDA! Verificar si un numero es par/impar , compuesto/primo
« en: 7 Mayo 2018, 17:00 pm »

Buenos dias a todos, espero que esten bien
Tengo un problema con lo que he programado. El ejercicio me pide que el usuario ingrese un numero y se debe verificar todos los numeros, desde el 1 hasta el ingresado, si son par/impar    compuesto/primo.
El error es que al compilar me dice que el 9 es impar y PRIMO, cosa de que el 9 es divisible por 1,3y9 lo cual seria un numero compuesto.

#include <stdlib.h>
#include <stdio.h>

int main()
{
  int n,i,k,cont=0;

  printf("Ingrese un numero:");
  scanf("%d",&n);

  for(i=1;i<=n;i++)
 {
   if(i%2==0)
   {
       if(i==2)
       {
           printf("El numero 2 es par y primo\n");
       }
       else
       {
           printf("El numero %d es par y compuesto\n",i);
       }
   }

   else
   {
       if(i==1)
       {
           printf("El numero 1 es impar\n");
       }
       else
     {
           for(k=2;k<i;k++)
           {
               if(i%k==0)
               {
                   cont++;
               }

          }
           if(cont>2)
            {
           printf("El numero %d es impar y compuesto\n",i);
            }
          else
            {
          printf("El numero %d es impar y primo\n",i);
            }
     }
   }
}
}

Creo que el error deberia estar en el ultimo for que utilize, cuando empieza el analisis de los impares.

GRACIAS DE ANTEMANO :)


En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.355


Ver Perfil
Re: AYUDA! Verificar si un numero es par/impar , compuesto/primo
« Respuesta #1 en: 7 Mayo 2018, 17:51 pm »

mmm... es cansino, que una y otra vez se pregunten las mismas cosas y el que pregunta no se tome la más mínima molestia de usar el buscador.

De hecho, lo procedente para los que empiezan, es tomarse la molestia de tomar pápel y lápiz (o una pizarra sea del tipo que sea) y plantear la solución ahí, y sólo cuando se tenga solventada con la lógica correcta es cuando resulta pertinente, ponerse a escribir código.

Escribir código al vuelo, es algo que solo se puede hacer cuando uno tiene solvencia cosa que (en general) se adquiere con la práctica (y solo cuando el problema tiene una envergadura limitada).

Para terminar te remarco, que la función módulo es muy útil pero cuando el valor por el que se 'modula' es una potencia de 2, entonces existe la alternativa equivalente de usar el AND, que es una operación atómica (nativa del procesador), y por tanto mucho más veloz que dividir y restar...

Así:
x modulo 2
es equivalente a:
x and 1

x modulo 4
x and 3

x modulo 8
x and 7

En general pués:
x modulo 2^n
x and (2^n)-1






« Última modificación: 7 Mayo 2018, 17:53 pm por NEBIRE » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines