|
|
La Taberna Un lugar para conversar sobre casi cualquier tema |
![]() |
|
Thread Tools | Display Modes |
|
![]() |
#1 |
Master
![]() ![]() ![]() Join Date: Dec 2008
Location: Herbred
Posts: 252
![]() |
![]()
Buenas a todos;
El profesor de informática de mi facultad nos asignó un problema que consistía en escribir un programa en C que, dado un número n por el usuario, imprimiera en pantalla nos n primeros números primos; por ejemplo, si el usuario teclea el número 5, aparecerían en pantalla los números 2,3,5,7,11 que son los 5 primeros números primos. Bien, yo he escrito un código que creo debería funcionar, pero parece que el ordenador no cree lo mismo ![]() ----------------------------------------------------- #include<stdio.h> int main() { int x=3; //numero de inicio para ir obteniendo los primos int d=2; //divisor (que ira aumentando de 1 en 1) int n; //numero de primos que el usuario quiere int c=1; //contador de primos printf("Introduzca la cantidad de numeros primos que desea: "); scanf("%d", &n); if(n==0) printf("No hay numeros primos"); if(n==1) printf("2 \n"); if(n>1) { printf("2 \n"); while(c!=n) { while(x%d!=0 && x>=d) { if(x%d!=0 && x==d-1) printf("%i \n", x); else d=d+1; } if(x%d==0) c=c; else c=c+1; x=x+1; } printf("fin"); } system("pause"); } Muchas gracias!!
__________________
COPENHAGEN Jamming
|
![]() |
![]() |
![]() |
#2 |
Apprentice
![]() Join Date: Mar 2010
Location: Algasborg
Posts: 50
![]() |
![]()
este esta mas claro
Code:
#include <stdio.h> int main() { int primos_por_mostrar, posible_primo, divisor; int es_primo; printf("Cuantos primos desea mostrar: "); scanf("%d", &primos_por_mostrar); posible_primo = 2; while (primos_por_mostrar > 0) { /* determinar si posible_primo es primo */ es_primo = 1; /* true */ for (divisor = 2; divisor < posible_primo; ++divisor) { if (posible_primo % divisor == 0) { es_primo = 0; /* false */ break; } } /* mostrar el numero * y actualizar el contador */ if (es_primo) { printf("%d ", posible_primo); primos_por_mostrar--; } posible_primo++; } printf("\n"); return 0; } |
![]() |
![]() |
![]() |
#3 |
Initiate
![]() ![]() Join Date: Jul 2008
Posts: 160
![]() |
![]()
en c es asi,
#include<stdio.h> int main() { int x=3; //numero de inicio para ir obteniendo los primos int d=2; //divisor (que ira aumentando de 1 en 1) int n; //numero de primos que el usuario quiere int c=1; //contador de primos printf("Introduzca la cantidad de numeros primos que desea saber: \n"); scanf("%d",&n); if(n==0) printf("No hay numeros primos"); if(n==1) printf("El numero primo es: 2 "); if(n>1) { printf("Los numeros primos son : 2-"); while(c!=n) { if(x%d!=0){ printf("%d-", x);c++;} x=x+1; } printf("fin"); } } estabas complicandote de mas, solo necesitas un bucle que corte cuando encontras la cantidad pedida, y el if que verifique que sean primos, te los muestre y sume al contador y aumentar x en el bucle! si tenes alguna duda mandame mp! |
![]() |
![]() |
![]() |
#4 | |
Master
![]() ![]() ![]() Join Date: Dec 2008
Location: Herbred
Posts: 252
![]() |
![]() Quote:
![]() Muchisimas gracias a los 2, me quedo con el de alepk porque me pareció mas sencillo el código, ahí te mando un mp preguntandote 2 cositas. Gracias!
__________________
COPENHAGEN Jamming
|
|
![]() |
![]() |
![]() |
#5 |
Initiate
![]() ![]() Join Date: Nov 2012
Location: Zona de Guerra
Posts: 222
![]() |
![]()
y el regnum? donde esta el regnum en todo esto?? jajaj XD
__________________
|
![]() |
![]() |
![]() |
#6 |
Count
![]() ![]() ![]() ![]() ![]() Join Date: Sep 2008
Posts: 1,690
![]() |
![]()
Lo cuestión es siempre que pretende el ejercicio. Se busca cualquier solución que funcione o se busca una solución eficaz?
![]() Lo que están haciendo con los codigos de arriba es probar una por una todos los numeros hasta n si son primos o no. Ya se pueden imaginar que este algoritmo no anda muy rapido. La otra solución clasica sería esa http://es.wikipedia.org/wiki/Criba_de_Erat%C3%B3stenes que trabaja más rapido pero requiere más memoria y a parte de esos dos existen varios algoritmos más modernos y obviamente mas rapidos en el calculo pero tambien algo mas complejos ![]() |
![]() |
![]() |
![]() |
#7 | |
Master
![]() ![]() ![]() Join Date: Dec 2008
Location: Herbred
Posts: 252
![]() |
![]() Quote:
__________________
COPENHAGEN Jamming
|
|
![]() |
![]() |
![]() |
Thread Tools | |
Display Modes | |
|
|