Witam!
Napisałam funkcję, sprawdzającą czy liczba jest pierwsza
bool czyPierwsza(int liczba)
{
bool wynik = true;
if ((liczba > 1) && (liczba % 2 == 1))
{
for (int proba = 3; proba <= sqrt(liczba); proba += 2)
{
if (liczba == 2)
{
break;
}
if (liczba % proba == 0)
{
wynik = false;
break;
}
}
}
else
{
wynik = false;
}
return wynik;
}
int main()
{
std::cout << "Podaj liczbę ";
int liczba;
std::cin >> liczba;
if (liczba > 1)
{
std::cout << "Liczba " << liczba;
if (czyPierwsza(liczba))
{
std::cout << " jest pierwsza";
}
else
{
std::cout << " jest złożona";
}
std::cout << std::endl;
}
else
{
std::cout << "Liczba powinna być większa niż 1" << std::endl;
}
system("pause");
return 0;
}
Mam 2 pytania:
- Dlaczego ta funkcja uważa, że liczba 2 jest liczbą złożoną? Przecież sprawdzam ten warunek?
- Dlaczego po uruchomieniu programy zamiast polskich znaków powstają pytajniki?