Hướng dẫn giải của TS10 Đắk Lắk 2023 - Bài 2
Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người làm lời giải.
Nộp code mẫu trước khi tự giải được bài tập là một hành vi có thể bị ban.
Gợi ý
Vì ~1 \le M \le N \le 10^{12}~ nên ta có thể dùng vòng lặp for
chạy từ ~1~ dến ~10^6~ để đếm các số chính phương thuộc đoạn ~[M, N]~.
Code tham khảo
#include <bits/stdc++.h> using namespace std; long long n, m; int ans = 0; int main(){ cin >> n >> m; for(int i = 1; i <= 1000000; i++){ if (1LL*i*i >= n && 1LL*i*i <= m) ans++; } cout << ans; return 0; }
Bình luận