Problem z zadaniem SPOJ - "Liczby pierwsze".

0

Zadanie pomimo poprawnych wyników, nie przechodzi http://pl.spoj.com/problems/PRIME_T/
Czy jest ktoś w stanie znaleźć błąd?

#include <iostream>

using namespace std;

string wynik;

string czy_pierwsza(int liczba)
{
	  for(int i=2;i*i<=liczba;i++)
	  {
			if(liczba%i==0) { return wynik="NIE"; }
      		else {return wynik="TAK";}	
	  }
}

int main()
{
	int l_test=0, liczba=0;
	cin >> l_test;
	
	for(int i=0; i<l_test; i++)
	{
		cin >> liczba;
	    if(liczba==1) { wynik="NIE"; }
		else if(liczba==2) { wynik="TAK"; }
	    else if(liczba==3) { wynik="TAK"; }
		else { czy_pierwsza(liczba); }
		cout << wynik << endl;
	}
	
	return 0;
}
0

return "TAK" dopiero po zakończeniu for-a, w tej postaci sprawdzi ci tylko czy liczba jest parzysta. Do tego zmienna wynik w zasadzie zbędna, możesz przecież od razu wypisać co trzeba. Poza tym wyniku funkcji czy_pierwsza nie wypisujesz na ekran ani do wynik nie podstawiasz, a którąś z tych rzeczy musisz zrobić. Po poprawieniu powyższych zaliczyło mi.

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