printf("pasaron %d millisegundos",(endTime
-startTime
)/1000);
Prueba:
printf("pasaron %f millisegundos",((double)(endTime
-startTime
))/CLOCKS_PER_SEC
);
for(control_for = 5; numero > (control_for * control_for); control_for+=6){
El cuadrado de los primos devuelve que es primo porque el cuadrado de los primos tecnicamente no es menor al cuadrado de los primos.
realmente la doble precisión es poco importante en este caso, y el compilador (netbeans) me muestra el tiempo de ejecución, siendo similar al del ejecutable, fijate que incluso lo imprimo sin decimales porque no los quería :s (los decimales representarían menos de 1/1000% de diferencia ya que los tiempos manejados están en el orden de >20segundos)
sobre el ciclo tienes razón... se me pasó esa comparacion... igual, haciendo los cambios
cambiando la linea 35 tanto de C y la 32 de Java a
for(control_for = 5; numero >= control_for * control_for; control_for+=6){
y cambiando en C la linea 26 a
printf("pasaron %.2f millisegundos",(double)(endTime
-startTime
)/1000);
sigo teniendo un margen de (a 1.000.000 de primos) C con 23 segundos y Java con 26 segundos, sigue estando en el orden de 15%... entonces Java hace muy buen trabajo, mucho mejor de la reputación que le dan... o no? mi comparación no toca puntos reales? (me refiero juego solo con velocidad de procesamiento y eficiencia de asignación a memoria que es con lo que juego aquí)