Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Restar números primos

Estas en el tema de Restar números primos en el foro de C/C++ en Foros del Web. Hola a todos. Este programa genera tantos números primos como el usuario solicite, pero estoy intentando añadir una parte que reste un número primo del ...
  #1 (permalink)  
Antiguo 29/06/2012, 15:29
Musiker
Invitado
 
Mensajes: n/a
Puntos:
Restar números primos

Hola a todos.
Este programa genera tantos números primos como el usuario solicite, pero estoy intentando añadir una parte que reste un número primo del anterior. Es decir, se genera el 2 y el 3 y resta el mayor del menor, etc

Sé que debe ser muy fácil, pero no soy capaz. He intentado guardarlos en un array para restarlos más tarde, pero sólo almacena el último número que se genera.

Agradecería mucho que alguien me ayudara

Código C:
Ver original
  1. #include<stdio.h>
  2.  
  3. int main(void)
  4. {
  5.     int c;
  6.     int i=0; /* contador de numeros encontrados */
  7.     int n=2; /* numeros primos */
  8.     int q=1; /* numeros por los que se divide n */
  9.  
  10.     printf("\nIntroduzca la cantidad de numeros primos que desee generar: ");
  11.     scanf("%d", &c); /* introducir cantidad de numeros a imprimir */
  12.    
  13.     printf("\n\n");
  14.    
  15.     while(i<c) /* cantidad de numeros a imprimir */
  16.     {
  17.         if(n>=q)
  18.         {
  19.             q++;
  20.            
  21.             if(((n%q)==0) && (n!=q)) /* si no es primo */
  22.             {
  23.                 n++;
  24.                 q=1;
  25.             }
  26.            
  27.             if((n%q)==0 && (n==q)) /* si es primo */
  28.             {
  29.                 printf("%d, ", n);
  30.                 n++;
  31.                 i++;
  32.                 q=1;
  33.             }
  34.  
  35.         }
  36.         else n++;
  37.     }
  38.  
  39. } // MAIN
  #2 (permalink)  
Antiguo 03/07/2012, 11:06
 
Fecha de Ingreso: junio-2012
Mensajes: 19
Antigüedad: 11 años, 10 meses
Puntos: 1
Respuesta: Restar números primos

Tal vez te sirva esto:

Código c:
Ver original
  1. #include <stdio.h>
  2. #include <math.h>
  3. //#include <stdlib.h>
  4.  
  5. int numero,primo;
  6.  
  7. int esprimo (int);
  8.  
  9. int main()
  10. {
  11.     printf("introduzca el numero: ");
  12.     scanf("%d",&numero);
  13.            
  14.     while (esprimo(numero)==0)
  15.     {
  16.         printf("El numero no es primo \nintroduzca el numero: ");
  17.         scanf("%d",&numero);    
  18.     }
  19.    
  20.     primo=numero;
  21.              
  22.     numero--;//Paso al anterior
  23.        
  24.     while (esprimo(numero)==0)
  25.     {
  26.         numero--;    
  27.     }
  28.    
  29.     printf("el numero primo inmediato mas chico es: %d",numero);
  30.     printf("\nLa resta de los numeros primos es: %d",primo-numero);
  31.    
  32.  
  33.     return 0;
  34.     //system("Pause");
  35. }
  36.  
  37. int esprimo (int numero)
  38. {
  39.     int i,primo=1;
  40.        
  41.     for (i=2;i<(numero/2)+1;i++)
  42.     {    
  43.         if ((numero%i)==0)
  44.         {                      
  45.             primo=0;        
  46.         }        
  47.     }        
  48.    
  49.     if (primo==1)
  50.     {
  51.         return 1;          
  52.     }
  53.     else
  54.     {
  55.         return 0;
  56.     }
  57. }
  #3 (permalink)  
Antiguo 05/07/2012, 17:48
Avatar de cronopiomx  
Fecha de Ingreso: mayo-2012
Ubicación: Programing Cloud
Mensajes: 282
Antigüedad: 12 años
Puntos: 28
Respuesta: Restar números primos

prueba est codigo!!!

s2
crono

Código:
#include<stdio.h>
#include<iostream>
using namespace std;
     
    int main(void)
    {
        int c;
        int i=0; /* contador de numeros encontrados */
        int n=2; /* numeros primos */
        int q=1; /* numeros por los que se divide n */

        printf("\nIntroduzca la cantidad de numeros primos que desee generar: ");
        scanf("%d", &c); /* introducir cantidad de numeros a imprimir */
        int minus[c];
       
        printf("\n\n");
       
        while(i<c) /* cantidad de numeros a imprimir */
        {
            if(n>=q)
            {
                q++;
               
                if(((n%q)==0) && (n!=q)) /* si no es primo */
                {
                    n++;
                    q=1;
                }
               
                if((n%q)==0 && (n==q)) /* si es primo */
                {
                    printf("%d, ", n);
                    minus[i]=n;
                    n++;
                    i++;
                    q=1;
                }
     
            }
            else n++;
        }
       printf("\nResta\n");
       for(int i=1; i<c; i++ )
          cout<< minus[i] -   minus[i-1] <<",";
       cout<<endl;
        
     system("pause");
     
    } // MAIN
  #4 (permalink)  
Antiguo 12/07/2012, 06:34
Musiker
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Restar números primos

Cita:
Iniciado por cronopiomx Ver Mensaje
prueba est codigo!!!

s2
crono

Código:
#include<stdio.h>
#include<iostream>
using namespace std;
     
    int main(void)
    {
        int c;
        int i=0; /* contador de numeros encontrados */
        int n=2; /* numeros primos */
        int q=1; /* numeros por los que se divide n */

        printf("\nIntroduzca la cantidad de numeros primos que desee generar: ");
        scanf("%d", &c); /* introducir cantidad de numeros a imprimir */
        int minus[c];
       
        printf("\n\n");
       
        while(i<c) /* cantidad de numeros a imprimir */
        {
            if(n>=q)
            {
                q++;
               
                if(((n%q)==0) && (n!=q)) /* si no es primo */
                {
                    n++;
                    q=1;
                }
               
                if((n%q)==0 && (n==q)) /* si es primo */
                {
                    printf("%d, ", n);
                    minus[i]=n;
                    n++;
                    i++;
                    q=1;
                }
     
            }
            else n++;
        }
       printf("\nResta\n");
       for(int i=1; i<c; i++ )
          cout<< minus[i] -   minus[i-1] <<",";
       cout<<endl;
        
     system("pause");
     
    } // MAIN
Perfecto! Justo lo que yo quería! Muchísimas gracias! :)

Etiquetas: int
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 12:34.