Ahoj,
Zadání :Napište funkci, která počítá v pořadí N-té prvočíslo. Hodnota N se zadává jako parametr funkce.
#include <stdio.h>
#include <conio.h>
#define is_prime(x) ((PrimeNumber(x))==x)
#define PINCH 0.01
unsigned int PrimeNumber(unsigned int x)
{
unsigned int i;
if(x<=2 || x%2==0)
return 2;
else
for(i=3;i<=(sqrt(x)+PINCH);i+=2)
if(x%i==0)
return i;
return x;
}
unsigned int prvocislo(unsigned int n)
{
unsigned int i=0;
while(n!=0){
i++;
if(is_prime(i))
--n;
}
return i;
}
int main (void)
{
unsigned int i;
printf("Zadej poradi prvocisla: ");
scanf("%d",&i),getchar();
printf("%d-te prvocilo je %d.n",i,prvocislo(i));
getch();
return 0;
}
Dokázali by jste tento kod zjednodušit?
Díky moc!