Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - estudiante_1

#21
tengo que hacer este programa: Programa que lea números enteros y nos diga cuántos números son pares. en C utilizando el bucle while. Una ayuda por favor. Esto es lo que he hecho:
#include<stdio.h>
#include<stdlib.h>
    int main(void){
    int n;
    scanf("%d",&n);
    while(n<100) scanf("%d",&n);
        if(n%2==0) printf("%d es par\n",n);






    system("pause");
    return(0);


    }
#22
Síi, funciona,  muchas gracias.
#23
quiero hacer un programa que dado un número me calcule su cuadrado y su cubo. No me funciona del todo, una ayuda por favor.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
     int eleva(int x,int i,int elevador){
     for(i=2;i<=3;i++){
     elevador=  pow(x,i);
     }
     return(elevador);
     }




     int main(void){
     int x,i,elevador;
     scanf("%d",&x);
     for(i=2;i<=3;i++) printf("%d\n",eleva(x,i,elevador));


     system("pause");
     return(0);

     }
#24
Gracias, vaya error que he tenido.
#25
Enunciado: Dos números amigos son dos números enteros positivos a y b tales que la suma de los divisores propios de uno es igual al otro número y viceversa, es decir σ(a)=b y σ(b)=a, donde σ(n) es igual a la suma de los divisores de n, sin incluir a n. (La unidad se considera divisor propio, pero no lo es el mismo número.)

Un ejemplo es el par de naturales (220, 284), ya que:

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.
Si un número es amigo de sí mismo (es igual a la suma de sus divisores propios), recibe entonces el nombre de número perfecto.
 Mi programa me va bien a la hora de decir si dos números son amigos, el problema lo tengo a la hora de decir si es perfecto. Ayúdenme.
#include<stdio.h>
#include<stdlib.h>


     int pedir_numero(char mensaje[]){
       int n;
       printf("%s\n",mensaje);
       scanf("%d",&n);
       while(n<0){
         printf("%s\n",mensaje);
         scanf("%d",&n);
       }
       return(n);
     }

     int suma_divisores(int n){
     int i,r,suma;
      suma=0;
      for(i=1;i<n;i++){
        r=n%i;
        if(r%i==0) suma=suma+i;
      }
      return(suma);
     }

    int sonamigos(int n1,int n2){
      int suma1,suma2;

      suma1 = suma_divisores(n1);
      suma2 = suma_divisores(n2);
      if ((suma1==n2)&& (suma2==n1)) return 1;
      else return 0;
    }


      int perfecto(int n3){
int suma3;
      (suma3==suma_divisores(n3));
      if(suma3==n3) return 1;
      else return 0;


      }


int main(void){
int n1,n2,n3;
int suma;

n1=pedir_numero("Dime el primer numero\n");
n2=pedir_numero("Dime el segundo numero\n");

if (sonamigos(n1,n2)) printf("\nSi son amigos\n");
else printf("\nNo son amigos\n");
n3=pedir_numero("Dime el tercer numero y veremos si es perfecto\n");
if(perfecto(n3)) printf("%d es perfecto\n",n3);
else printf("%d no es perfecto\n",n3);
system("Pause");
return(0);
}




















Gracias, de verdad.
#26
Gracias por tu respuesta.
#27
Aquí trato de tachar los múltiplos, pero no me funciona.
#include<stdio.h>
#include<stdlib.h>

     void criba(int v[],int i,int n, int j){
      for(i=2;i<n;i++){
for(j=2;i*j<n;j++){
v[i*j]=0;
}
}


      }


    int main(void){
    int n;
    scanf("%d",&n);
    int v[n],i,j;
    for(i=2;i<n;i++){
       v[i]=i;
    printf("%d\n",v[i]);
    }
    printf("%d\n",criba(v,i,n,j));



    system("pause");
    return(0);

    }





Ya lo he hecho como me dijsites, pero no me funciona y creo que es por un pequeño error, aquí te dejo el programa:
include<stdio.h>
#include<stdlib.h>

      void criba(int v[]){
          int i,n,j;
       for(i=2;i<n;i++){
       for(j=2;i*j<n;j++){
      v[i*j]=0;
     }
   }


       }


        int main(void){
        int n;
        scanf("%d",&n);
        int v[n],i,j;
     for(i=2;i<n;i++){
          v[i]=i;
     printf("%d\n",v[i]);
     }
      criba(v);
      for(i=2;i<n;i++){

      if(v[i]!=0) printf("%10d\n",v[i]);

}

     system("pause");
     return(0);

     }
#28
Hola, ya he conseguido resolver el problema de la criba, ahora mi problema es que no sé cómo poner funciones para que sea mucho mejor el programa. Una ayuda por favor, para las funciones que se me dan horrible. Este es el programa en el main:
#include<stdio.h>
#include<stdlib.h>






    int main(void){
    int n;
    scanf("%d",&n);
    int v[n];
    int i,j,p;
    for(i=0;i<n;i++){
    v[i]=i;
    printf("%d\n",v[i]);
    }
for(i=2;i<n;i++){
for(j=2;i*j<n;j++){
v[i*j]=0;
}
     printf(" Tachando los multiplos con un 0: %10d\n",v[i]);
}     for(i=2;i<n;i++){
if(v[i]!=0) printf("Los numeros primos son: %4d\n",v[i]);

    }

    system("pause");
    return(0);

    }

Muchas gracias
#29
Me sale casi correcto, el problema es que a la salida que me da el programa me salen algunos 0. Es este:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
     int main(void){
int n;
     scanf("%d",&n);

      int v[n];
     int i;
     for(i=2;i<n;i++){
            v[i]=i;
printf("%d\n",v[i]);
     } int j;

     for(i=2;i<n;i++){
      for(j=2;i*j<n;j++){
v[i*j]=0;
      }if (v[i]!=v[i*j]){

      printf("\nNumeros primos: %4d\n",v[i]);
      }
     }




     system("pause");
     return(0);

     }
#30
Vale, aunque no entiendo muy bien  tu programa, me gustaría hacerlo como he pensado.  Dime que sabes que tengo  que hacer para que me imprima los que sí son primos :silbar: