No se hacerlo XD (C++)

gF

#30 Depende de la implementacion que se haga porque si lo haces bien no solo tienes que buscar hasta la mitad del numero que estas comprobando sino que incluso como bien se ha dicho ya, basta con la raiz cuadrada. Es decir si estas comprobando el 101, no hace falta que lo dividas desde el 1 al 50 y comprobando el resto, sino que con que compruebes del 1 al 10 sobra.

LOc0

#29 con "ligera" optimización:


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

#define MAX 1000000000

int main(int argc, char *argv[])
{


if(argc==2)
{
	int tope=atoi(argv[1]);
  
	if(tope>=2 && tope<=MAX)
	{
		int *primos, i, j, total=1, tiempo_inicio, loes;
		double raiz;
  
		primos=(int*)malloc(tope*sizeof(int));
  
		tiempo_inicio=time(NULL);
  
		primos[0]=2;
  
		printf("\n2 ");

		for (i=3; i<tope; i+=2) 
		{
			loes=1;
			raiz=sqrt(i);

			for (j=0; j<total && primos[j]<=raiz; j++)
			{
				if (i%primos[j] == 0) 
					loes=0;
			}
  
			if(loes) 
			{
				primos[total++]=i;
				printf("| %d ", i);
			}
  
		}
  
		printf("\n\nTotal encontrados: [%d] Tiempo empleado: %d seg\n", total, time(NULL)-tiempo_inicio);
  
		free(primos);
  
	}
	else
		printf("\nError: 2<=tope<=%d\n", MAX);

}
else
	printf("\nEl formato es: primos [numero_tope]\n");
  
return 0;

}
[/i]

Salu2 ;)

OhmaK

En vez de poner codigo y demostrar ke soys unos pr0's por hacer un algoritmo que diga numeros primos de 1 al 100 ¬¬ dar pistas y punto. O sino la siguiente practica, vendra aki con otro programita y preguntara.

AntonRodin

Nesesito hacer un proyecto sobre generacion de sombras con opengl y stencil buffer con c++ y la libreria GLAUX

hay voluntarios?????

xDDDDDDD

enga va lo hago yo :(

LOc0

enga va lo hago yo

Sí, será mejor xD

Salu2 ;)

T

#32

No veas que optimización teniendo que usar raices.

#33
Si no sabe para empezar ni lo que es un número primo ...

//(En C)
#include <stdio.h>
int main(){

int primo=1;
int i;
int j;

for(i=2;i<100;i++){
for(j=2;j<i/2&&primo;j++){
if(i%j==0){
primo=0;
}
}


if(primo==1){
	printf("Primo: %i\n",i);
}
primo=1;

}
return 1;
}

gF

#34 Para las practicas de informatica grafica yo tuve que programarr desde 0 un visualizador tridimensional y tuve que implementar algoritmos de dibujo de lineas DDA, relleno por rastreo, ocultacion, eliminacion de caras posteriores, iluminacion y sombreado, sombras... Y sin la ayuda de librerias graficas... Lo tuyo esta tirao macho.

LOc0

No veas que optimización teniendo que usar raices.

Quizá con los 100 primeros apenas se note, pero a medida que subes se nota y MUUUCHO. (Puedes probarlo si no te lo crees).

Salu2 ;)

PD: El código que has pegado está mal.

EnZo

#32 desdeluego mas optimizado no se puede hacer la verda, seria el mas rapido en calcular hasta 1 billon, siempre y cuando la consola de xp no te de un error de no enviar xDD

AntonRodin

#37 hombre si opengl fuera tan facil cualquiera de nosotros podria ser John Carmak

Lo que hecho en falta es mas documentacion en español q es practicamente inexistente.

Si alguien se anima a traducir esto seria de agradecer:

http://developer.nvidia.com/attach/6641

y ya que estamos es bastante mas divertido de hacer que numeros primos xD

B

#23 dime el que

Soltrac

Lo q dice 38 es verdad....optimizar a Sqrt(n) se nota....y mucho. Evidentemente no en 100 numeros, pq trabajamos con ordenadores muy rapidos....pero tenemos q suponer q podemos introducir infinitos numeros. Aun asi, si la xavala no sabe hacer esto, dudo q tenga q preocuparse de optimizar.

PD: Vas a suspender :), te lo digo desde ya xDD

A

#34, Yo me apunto. No sé mucho de Stencil Buffers, pero sí he tocado Opengl/GLAUX alguna vez. Por otra parte...

http://nehe.gamedev.net

(Tutoriales Opengl/GLAUX)

IbLiS-

tienes que hacer una funcion que compruebe si el numero es primero o no. Esta debe devolver un booleano si es cierto pues que lo saque por pantalla sino que pase al siguiente.
Fijate que para comprobar si es primero o no debes empezar a dividir por la mitad del numero. Te pongo un ejemplo.
Si tienes el 10, empezaras a dividir por 5 ya que los superiores a este siempre te daran menos que 2.

EDIT: #45 es verdad, sabia que se empezaba a dividir por un numero mas bajo pero no me acordaba exactamente. Ni caso a lo de arriba

Soltrac

#44 ni la mitad. Ya se ha demostrado arriba q hasta la raiz es suficiente.

AntonRodin

43 el problema de nehe es q esta en ingles :(

el trabajo ya lo hice jejeje queda chulo pero aprender stencil buffer es un poco dolor de cabeza, y sin documentacion en español no sabes ni de q va.

otra cosa q no me gusta de nehe es q los tutoriales los hacen creando ventana para windows(de una forma extraña), lo podrian simplificar bastante utilizando glaux/glut para fines educativos al menos.

solo me queda colgar el trabajo x ahi q seguro q alguien me lo agradecera.