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

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.