

Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
`*` Theo lý thuyết, nếu `sqrt(n) = |~sqrt(n)~|` với `|~sqrt(n)~|` là làm tròn `sqrtn`
Mà ta biết rằng, nếu `n` không là số chính phương thì `sqrtn` là 1 số vô tỷ, và trong C++, kiểu dữ liệu số nguyên (int, long long,..) chỉ lấy phần nguyên. Nếu n là số chính phương, thì `|~sqrt(n)~|*|~sqrt(n)~| = n`, ngược lại, `|~sqrt(n)~|*|~sqrt(n)~| != n` (vì bị hao hụt đi phần thập phân)
$\texttt{C++}$
#include <bits/stdc++.h>
using namespace std;
int main()
{
long long n;
cin >> n;
long long k = sqrt(n);
if (k * k == n)
{
cout << 1;
}
else
{
cout << 0;
}
}
Hãy giúp mọi người biết câu trả lời này thế nào?

Bảng tin
794
904
1405
zô nhóm e hong anh =))
2708
41758
2046
Mình không bạn ạ.
794
904
1405
vg