

Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
Thuật toán
Thao tác thứ `i` sẽ đảo ngược trạng thái của đền ở trị trí chia hết cho `i`
`=>` Một đèn ở vị trí `a` bất kỳ `(1 <= a <= N)` sẽ được bật/tắt với số lần là số ước của `a`
Do một số không phải là số chính phương luôn có số ước số là chẵn nên sau khi thực hiện `N` thao tác sẽ trở về tắt như ban đầu. Còn số chính phương luôn có số ước số là lẻ nên sau khi thực hiện `N` thao tác thì đèn sẽ bật.
Chính vì vậy, ta chỉ cần tìm số các số chính phương nhỏ hơn `N` là `|__ sqrtN __|`
Code
#include <bits/stdc++.h>
using namespace std;
int main() {
long long n;
cin >> n;
cout << (long long) sqrtl(n);
return 0;
}
Hãy giúp mọi người biết câu trả lời này thế nào?
Bảng tin