crear una matriz de 10x10 de forma aleatoria con numeros primos

Iniciado por piyor6, 29 Marzo 2018, 05:13 AM

0 Miembros y 1 Visitante están viendo este tema.

piyor6

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  :-( :-( :-(


Código (cpp) [Seleccionar]
#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
-Engel Lex

Yuki

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...