LIST08: Vị trí các số chính phương

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 64M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C++, Pascal, Python


Bình luận

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



  • 0
    C3VT_Dhau  đã bình luận lúc 20, Tháng 1, 2026, 1:12

    oke


  • 0
    C3VT_Dhau  đã bình luận lúc 20, Tháng 1, 2026, 1:09 chỉnh sửa

    day la cau tra loi cho newbie

    include <bits/stdc++.h>

    using namespace std;

    int main() {

    int n;
    cin >> n;
    vector<int> a(n);
    
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    
    vector<int> pos; 
    for (int i = 0; i < n; i++) {
        if (a[i] >= 0) {
            int r = sqrt(a[i]);
            if (r * r == a[i]) {
                pos.push_back(i + 1); 
            }
        }
    }
    cout << pos.size() << endl;
    for (int x : pos) {
        cout << x << " ";
    }
    cout << endl;
    return 0;
    

    }


  • 0
    AnCTPP_01  đã bình luận lúc 7, Tháng 12, 2025, 3:04

    include <bits/stdc++.h>

    using namespace std;

    bool isSquare(long long x) { if (x < 0) return false; long long r = sqrt(x); return r * r == x; }

    int main() { int n; cin >> n;

    vector&lt;long long> a(n);
    vector<int> pos; // lưu vị trí các số chính phương
    
    for (int i = 0; i < n; i++) {
        cin >> a[i];
        if (isSquare(a[i])) pos.push_back(i + 1); // i+1 vì vị trí bắt đầu từ 1
    }
    
    cout << pos.size() << endl;
    
    for (int p : pos) cout << p << " ";
    
    return 0;
    

    }