Napisałem sobie sito - chcę znaleźć max liczbę pierwszą w [2,n]. To taki algorytm może nie najbardziej optymalny, ale w takiej postaci to rozumiem. Czemu to nie działa (zapętla się?)
#include <iostream>
using namespace std;
int sito(int n)
{
int i,j, tab[n];
for(i=0; i<=n; i++)
{
tab[i]=1; // wstepne przygotowanie tablicy
}
for(j=2; j<n; j++)
{
int k=j;
while(k<n)
{
k=k+j; // wielokrotnosc danej liczby
tab[k]=0; // wyzerowanie wielokrotnosci
}
}
int max = 0;
for(i=2; i<n; i++)
if (tab[i] == 1)
max = i;
return max;
}
int main()
{
cout << sito(10) << "\n";
return 0;
}