Zadání:
Sestavte program, který nalezne prvočíslo dle zadaného pořadí.
Řešení:
Řešení vychází z programu 04.21. Na začátku programu vložíme do proměnné c hodnotu 1 (jedna). Pomocí cyklu
DO ... WHILE
vždy zvýšíme hodnotu této proměnné o 1 a otestujeme, zda obsahuje prvočíslo. Pokud ano,
zvýšíme hodnotu proměnné
p o 1 (v této proměnné evidujeme počet nalezených prvočísel). Cyklus ukončíme tehdy,
když bude počet
nalezených prvočísel shodný se zadaným pořadím. Pak nalezené prvočíslo vytiskneme.
#include "stdafx.h"
#include "math.h"
#include
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int c,i,n,p;
bool prvocislo;
printf("Zadejte, kolikate prvocislo chcete najit: ");
scanf_s("%d",&n,1);
c=1;
p=0;
do
{
c++;
prvocislo=true;
for (i=2; i<=(int)sqrtf(c); i++) if (c%i==0) prvocislo=false;
if (prvocislo) p++;
}
while (p!=n);
printf("%d.prvocislo: %d\n",n,c);
system("pause");
return 0;
}
program ke stažení
Pro studenty:
Uvedený program předpokládá, že prvním prvočíslem je hodnota 2.