Trang chủ Tin Học Lớp 8 code kiểm tra số hoàn hảo bằng C++ câu hỏi 6100846
Câu hỏi :

code kiểm tra số hoàn hảo bằng C++

Lời giải 1 :

Giải thích các bước giải:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll TU(ll n)
{
    int cnt=0;
    for(ll i=1;i*i<n;i++)
    {
        if(!(n%i))
            cnt+=i+n/i;
        if(i*i==n)
            cnt-=i;
    }
    return cnt;
}
int main()
{
    ll n;
    cin>>n;
    if(TU(n)-n==n)
        cout<<"YES";
    else
        cout<<"NO";
}

Lời giải 2 :

Thuật toán: Tạo 1 hàm tính tổng các ước của 1 số (Thuật toán duyệt căn, có thể tìm hiểu thêm). Sau đó trừ đi chính nó, vì chính số đó là ước lớn nhất của nó. Kiểm tra xem nó có bằng chính số đó hay không.

$\texttt{C++}$

#include <bits/stdc++.h>

using namespace std;

long long tonguoc(long long n)
{
    int s = 0;
    for(long long i = 1; i * i <= n; i++)
    {
        if(n%i==0)
        {
            s+=i;
            if(n/i!=i) s+=n/i;
        }
    }
    return s;
}

int main()
{
    long long n;
    cin>>n;
    if(tonguoc(n)-n==n) cout<<"YES";
    else cout<<"NO";
}

image

Bạn có biết?

Tin học là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng. Tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin. Hãy tận dụng sức mạnh của tin học để giải quyết các vấn đề và sáng tạo ra những giải pháp mới!

Nguồn :

Wikipedia - Bách khoa toàn thư

Tâm sự lớp 8

Lớp 8 - Năm thứ ba ở cấp trung học cơ sở, học tập bắt đầu nặng dần và sang năm lại là năm cuối cấp, áp lực lớn dần. Hãy chú ý đến sức khỏe, cân bằng giữa học và nghỉ ngơi để đạt hiệu quả tốt nhất!

Nguồn :

sưu tập

Copyright © 2024 Giai BT SGK