SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: ermiguel1979 en Sábado 12 de Diciembre de 2009, 19:52

Título: DIVISORES
Publicado por: ermiguel1979 en Sábado 12 de Diciembre de 2009, 19:52
HOla chic@s; necesito hacer un programilla que te muestre en pantalla todos los divisores de un número entero.

He estado cacharreando, pero despues de escribir el codigo y tal, el programa no hace nada.
Pide y lee el número, pero se me atranca en el 'resto'.

Hay va la parida que llevo hecha:

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

/*Algoritmo -> DIVISORES de un numero dado*/
int main (void){
   /*VARIABLES*/
   //Entradas
   int num;      //El numero a estudiar
   //Intermedias
   int i;         //Contador del 'PARA'
   int aux;      //resto de 'num'/'i' en cada iteracion
   //Leer variables
   printf("Escribir un numero entero: ");
   scanf("%i", &num);
   
   /*OPERACIONES*/
   for(i=1; i<=num; i++){
      aux = num%i;
      if (aux=0){
         printf("%i es divisor de %in", i, num);
      }
   }
}


Bueno, que deciros a parte de que soy más malo que Fu-Manchú.... en esto del C.

Un saludo para la gente del foro!!!
Título: Re: DIVISORES
Publicado por: punteroNULO en Domingo 13 de Diciembre de 2009, 00:10
Un fallo es este:
Código: C
  1. if (aux=0){
  2.  

Estas haciendo una asignación, para comparar es "=="
Código: C
  1. if (aux==0){
  2.  
Título: Re: DIVISORES
Publicado por: xtermsh en Domingo 13 de Diciembre de 2009, 17:01
No necesitas hacer un ciclo hasta llegar al número, basta con que llegues a num / 2.
Título: Re: DIVISORES
Publicado por: ermiguel1979 en Domingo 13 de Diciembre de 2009, 18:54
Hey!, un detalle muy bueno el del ==; voy a corregirlo ahora mismo. Gracias...