Es un programa de pc, pero en la practica no hay diferencia alguna con la nds (Al menos en este codigo).
Asi que lo pongo por aqui. El programa consiste en un descomponedor de numeros, tu le metes un numero y te lo descompone. Por ejemplo, si le pones un 8. El programa te devolvera 2x2x2.
Esa es la teoria, pero en la practica el programa me devuelve el mismo numero y sin embargo yo no le veo ningun error. Os dejo por aqui el codigo:
#include <stdio.h> #include <stdlib.h> int numero; int i; int divisores[128]; int divisible(int numeross){ int divisor = 1; while (((numeross % divisor) != 0)&& (numeross > divisor)){ divisor++; } if (numeross% divisor == 0){ return divisor; } else{ return 1; } } int main(int argc, char *argv[]) { printf("Descomponedor de numeros"); printf("\n"); printf("\n"); printf("Introduce el numero: "); scanf("%d",&numero); getchar(); printf("\n"); while(divisible(numero) > 1){ divisores[i] = divisible(numero); numero /= divisible(numero); i++; } i = 0; printf("El numero es: %d",numero); while(i < 128){ if(divisores[i] != 0){ printf(" x %d",divisores[i]); } } system("PAUSE"); return 0; }
mal echo pero que funciona
mal echo pero que funciona es divisor = 2 por que si es =1 nunca entras en el bucle.
y i++ dentro del ultimo while para que escriba bien.
No es muy optimo... pero creo que va.
Visita mi blog. Zenit + 5 will win
Ya funciona correctamente,
Ya funciona correctamente, gracias guitar!.
Lo de la optimizacion... A mi me descompone los numeros sin problemas hasta un determinado limite que supongo que debe ser el de las variables int. Si consiguiera aumentar el limite un poco mas (me parece insuficiente) seria perfecto.
Mirare un poco por google : p.
Mi creacciónes particulares:
http://www.scenebeta.com/noticia/la-serpiente
http://www.scenebeta.com/node/22535
yo creo que no se refiere a
yo creo que no se refiere a 128 espacios en o 512 en el array...sino a que el número 2560 te lo descompone por ejemplo, pero el 3.695.876.987 se pasa del rango admitido por los enteros y por eso no lo descompone.
si solo vas a usar enteros positivos usa u32 que llegan hasta 4.294.967.295
si te interesa tb con números negativos -2.147.483.647 <= s32 =>2.147.483.647
sigue estando bastante limitado si quieres usar números grandes.