Функция sqrt и принимает и возвращает тип double. Другое дело, что к типу double будет неявно приведен любой числовой тип. То что после sqrt(25) в консоль выводится 5, равным счётом ни о чём не говорит. Результат зависит от внутренней реализации и на различных компиляторах может отличаться.
Ну уже говорили про double, а так то можно сделать следующим образом, так как диапазон int это целые числа от -2 147 483 648 до 2 147 483 647
[THIDE="0"]#include <iostream>
#include <math.h>
using namespace std;
int main(){
setlocale(LC_ALL, "Russian");
int a;
cin>>a;
if((sqrt(a) >= -2147483648LL && sqrt(a) <= 2147483647LL)) {