Witam,
chciałem napisać program w c++, który ma w sobie 2 funkcje i wypełnia tablicę dwuwymiarową 10 na 10 elementów losowymi liczbami pierwszymi z przedziału od 1-100. Problemem moim jest to, że nie potrafię zastosować tutaj metody sita Eratostenesa, za każdą próbą wywalało tyle błędów, że momentami miałem dość. Program jest prawie dobry ale nie wiem jak wyeliminować to, aby nie wyświetlał on liczb takich jak: 9,15,27 czy 49. Polegałem na metodzie prób i błędów i poniżej jest efekt tego, co po dłuższym czasie udało mi się zrobić.
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
const int rozmiar=10;
int funkcja1()
{
return rand()% 100 + 1;
}
bool funkcja2(int liczba)
{
for(int i=2;i<liczba;i++)
{
if(liczba%i==0)
return true;
else
return false;
}
}
int main()
{
srand( time( NULL ) );
int t;
int **liczby = new int*[rozmiar];
for(int i=0;i<rozmiar;i++) liczby[i]=new int[rozmiar];
for(int i=0;i<rozmiar;i++)
{
for(int j=0;j<rozmiar;j++)
{
do
{
t=funkcja1();
}
while(funkcja2(t));
liczby[i][j]=t;
cout << t << " ";
}
cout << endl;
}
return 0;
}
Proszę Was o pomoc