buenas noches amigos vengo con un problema que me tiene loco, tengo que hacer una matriz de 10x10 y llenarla con numeros aleatorios pero que sean primos, yo se como llenarlas de forma aleatoria pero no tengo ni idea de como hacerlo para que me canbie el numero que puso aleatorio por uno primo, esto es lo que llevo solo llego hasta la parte de llenar la matriz de forma aleatoria
ayuda por favoooooor :-( :-( :-(
#include <stdlib.h>
#include <stdio.h>
#include <ctime>
int main(){
int m[10][10];
srand(time(0));
for(int i=0;i<10;i++){
for(int j=0;j<10;j++){
m[i][j]=rand()%10;
}
}
//imprimir matriz
for(int i=0;i<10;i++){
for(int j=0;j<10;j++){
printf("%d ",m[i][j]);
}
printf("\n");
}
//todos los numeros estan en m[i][j]
for(int i=0;i<10;i++){
for(int j=0;j<10;j++){
//me imagino que aqui se hace algo para mirar el primo
}
}
return 0;
}
· Los códigos deben ir en etiquetas GeSHi
· Los temas van en su respectivo subforo (movido)
>aquí las reglas del foro (http://foro.elhacker.net/reglas.htm)
-Engel Lex
Es simple, solo usá un procedimiento recursivo que retorne un número primo, te lo dejo en pseoducódigo.
Func RandByYuki():Int
' En este caso no es necesario inicializar las variables.
int Ret
int i
bool NoEsNúmeroPrimo
Ret = rand() % 10
For i = 2 to (Ret - 1)
' Número primo = Número solo divisible por 1 y por si mismo.
' El operador MOD retorna el sobrante de una división, si no hay sobrante significa que no es un número primo.
NoEsNúmeroPrimo = ((Ret Mod i) = 0)
If NoEsNúmeroPrimo Then
Exit For ' El número es divisible, por ende, no es un número primo, entonces salimos del bucle.
EndIf
Next
If NoEsNúmeroPrimo Then
Ret = RandByYuki() ' Se auto invoca.
EndIf
RandByYuki = Ret
EndFunc
Este código lo escribí acá y no se si funciona realmente, pero te deberia de dar "la mano" para que te escribas tu propio código.
PD: Que lindo pseudocódigo che...