Obliczenie 10001 liczby pierwszej

0

Witam,
Mam oto taki kodzik:

#include<iostream>
using namespace std;

int main()
{

	int numer=1;

	for(int a=1;numer==10001;a++)
		{

		for (int b=2;b<a;b++)
			{

			if(a%b)
				{
				numer++;
				}

			}

			if(numer==10001)
			{
				cout<<"10001 liczba pierwsza to:"<<a<<endl;
			}

		}

}

i program nic nie wyświetla. Jak zrobić żeby przy ifie numer zmieniał się globalnie??
ps. mam nadzieję, że udało mi się w miare mądrze przekazać to o co mi chodzi...

0

Powinno być raczej:

for(int a=1;numer!=10001;a++)
0

Ale wtedy chyba to sie nie wykona:

 
			if(numer==10001)
			{
				cout<<"10001 liczba pierwsza to:"<<a<<endl;
			}

		}
0

Wykona się, bo najpierw inkrementujesz numer potem porównujesz z 10001, a na końcu dopiero przerywasz pętlę. Twój kod w ogóle nie wchodzi do pętli.

0

Nie mogę patrzeć na te męki

#include <cstdio>
#include <vector>
#include <iostream>

using namespace std;

int main()
{
  int SZUKANA;
  cout << "Ktorej liczby pierwszej szukasz?\n";
  cin >> SZUKANA;

  int MAX = SZUKANA*15;
  if (MAX<0 || SZUKANA<0 /*przekroczenie zakresu*/)
    {
      cout << "I moze frytki do tego?\n";
      return 0;
    }
  if (MAX>5000000)
    {
      cout << "Idz sobie zaparzyc kawe, bo to potrwa...\n";
    }
  int ilosc;
  do
    {
      ilosc = 0;
      vector<bool> sito(MAX,true);

      for (int i=2; i<MAX; ++i)
        {
          if (sito[i])
            {
              ilosc++;
              if (ilosc==SZUKANA)
                {
                  cout << "Szukana liczba pierwsza to: " << i << "\n";
                  break;
                }
              for (int j=i*2; j<MAX; j+=i)
                sito[j] = false;
            }
        }
      if (ilosc!=SZUKANA)
        {
          MAX*=2;
          if (MAX<0)
            {
              cout << "Tak duza liczba pierwsze nie jest mozliwa do znalezienia!\n";
              break;
            }
        }
    }
  while (ilosc!=SZUKANA);

  return 0;
}
0

Dopiero zaczynam, na dobrą sprawę to pula narzędzi, które znam do tworzenia programów kończy się na pętlach.
Ok. Dzięki za ten kod. Nie wszystko wiem, co tam się dzieje, ale sens główny rozumiem.

0

warto wiedzieć, że P_n < n log (n log n)

1 użytkowników online, w tym zalogowanych: 0, gości: 1