m0skit0 escribió:Optimizar la comprobación de si un número es primo o no. Todos lo habéis hecho muy parecido, y en todos los casos el bucle es demasiado largo, se puede reducir a la mitad (y menos) de comprobaciones

Lo repasaré a ver.
Moderadores: Kravenbcn, largeroliker, fidelcastro, cerealkiller, pspCaracas, m0skit0, LnD, ka69, zacky06
m0skit0 escribió:Optimizar la comprobación de si un número es primo o no. Todos lo habéis hecho muy parecido, y en todos los casos el bucle es demasiado largo, se puede reducir a la mitad (y menos) de comprobaciones
m0skit0 escribió:¿¿bucle = 4?? No no no, ésa no es la palabra mágica, no no no. Además, ahora ya no funciona bienNo se trata de joderlo, sino de mejorarlo
miguelamacias escribió:Si un número es divisible entre 4 lo es también por 2. Esa comprobación sobra. Igual con el ocho.
largeroliker escribió:Primero:
largeroliker escribió:el segundo:
Código: Seleccionar todo
if ((num1+num2) > 20)
printf("La suma de %.0f y %.0f es mayor de 20\n", num1, num2);
else
printf("La suma de %.0f y %.0f no es mayor de 20\n", num1, num2);
Código: Seleccionar todo
if ((num1+num2) > 20)
printf("La suma de %.0f y %.0f es mayor de 20\n", num1, num2);
else
printf("La suma de %.0f y %.0f no es mayor de 20\n", num1, num2);
largeroliker escribió:el tercero:
m0skit0 escribió:Dados dos números enteros, si la suma de ambos es par, imprimir todos los valores pares hasta el mayor de ellos. Si la suma no es par, imprimir los valores impares hasta la suma de ambos.
m0skit0 escribió:Veamos al vicejefe
largeroliker escribió:Primero:
Nada que objetar (y dale con getch() xD)
m0skit0 escribió:largeroliker escribió:el segundo:
Funciona, pero podrías mejorarlo:Código: Seleccionar todo
if ((num1+num2) > 20)
printf("La suma de %.0f y %.0f es mayor de 20\n", num1, num2);
else
printf("La suma de %.0f y %.0f no es mayor de 20\n", num1, num2);
La única diferencia entre un caso y otro en el caso del printf() es el no. Intenta no escribir todo 2 vecesAh y se dice mayor que, no mayor de (Ay paio, tú no eres mayor de mi primo). Lo mismo se aplica para el resto de casos.
Código: Seleccionar todo
if ((num1+num2)> 20)
variable= "mayor que"
else
variable= "menor que"
printf("La suma de %.0f y %.0f es %s 20\n", num1, num2, variable);
m0skit0 escribió:En cuanto a estilo:Código: Seleccionar todo
if ((num1+num2) > 20)
printf("La suma de %.0f y %.0f es mayor de 20\n", num1, num2);
else
printf("La suma de %.0f y %.0f no es mayor de 20\n", num1, num2);
El else va al mismo nivel que el if. Cuando sangrías es al cumplirse la condición.
m0skit0 escribió:largeroliker escribió:el tercero:
Vicejefe, vuelva a leerse el enunciado, que se ha hecho usted un lío del copón xDm0skit0 escribió:Dados dos números enteros, si la suma de ambos es par, imprimir todos los valores pares hasta el mayor de ellos. Si la suma no es par, imprimir los valores impares hasta la suma de ambos.
Mi consejo es que vuelvas a hacerlo desde cero. Fíjate que no hay tantas condiciones como tú planteas en tu código. Además, tienes el while escrito 4 veces exactamente igualSi ves que pasa eso, es que estás estructurando mal el código.
m0skit0 escribió:Aparte, le dejo su código con un buen estilo de formateo (fíjese que sólo cuando hay una condición se sangría):
En vez de num++; num++; puedes hacer num+=2