Treść zadania: Napisz program, za pomocą którego otrzymasz tylko te liczby z pliku liczby.txt, które są kwadratami liczb pierwszych.
Nie potrafię znaleźć błędu przez który wynik jest totalnie nieprawidłowy.
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
bool czy_pierwsza(int liczba)
{
if(liczba<2)
return false;
for(int i=2;i<sqrt(liczba);i++)
{
if(liczba%i==0)
return false;
}
return true;
}
int main(int argc, char** argv) {
ifstream infile("liczby.txt");
int liczba;
int liczba2;
for(int i=0;i<500;i++)
{
infile >> liczba;
liczba2=sqrt(liczba);
if(czy_pierwsza(liczba2))
{
cout<<liczba<<endl;
}
}
return 0;
}