Witam,
Załęczem trochę bawić się C++ i polskim SPOJ'em staram się rozwiązać 1 zadanie o nazwie PRIME_T http://pl.spoj.com/problems/PRIME_T/
Cały czas mam, że odpowiedź jest błędna, nie wiem już co można zmienić.
Może ktoś mądrzejszy spojrzy co robię źle. Wydaje mi się, że poprawnie wyznacza liczby pierwsze
Poniżej zamieszczam kod:
#include <iostream>
#include <math.h>
bool isPrime(int);
int main()
{
unsigned int numberOfLoops;
std::cin >> numberOfLoops;
bool answer[10000];
for (int i = 0; i < numberOfLoops; i++)
{
unsigned int numbertoCheck;
std::cin >> numbertoCheck;
if (isPrime(numbertoCheck))
answer[i] = true;
else
answer[i] = false;
}
for (int i = 0; i < numberOfLoops; i++)
{
if (answer[i])
{
std::cout << "Tak" << std::endl;
}
else std::cout << "Nie" << std::endl;
}
return 0;
}
bool isPrime(int number)
{
if (number == 1) return false;
if (number == 2) return true;
if (number == 3) return true;
if (number == 4) return false;
for (int i = 2; i <= sqrt(number); i++)
{
if ((number % i) == 0)
{
return false;
}
}
return true;
}