Bài tập C++: Số hoàn hảo và số nguyên tố

Mọi người kiểm tra hộ mình:

#include<bits/stdc++.h>
using namespace std;
bool KTHH(long long n)
{
    long long s=0;
    for ( long long i = 1; i<=n/2 ; i++)
        {
            if ( n % i == 0 )s=s+i;
            }
       return  s==n;
}
long long tong(long long n)
{
    long long t = 0 ; for ( long long i = 1 ; i<=n;i++)
    if (KTHH(i)) t = t+ i;
    return t ;
}
bool KTNT(long long  n) {
    if (n <= 1) return false;
    for (long long i = 2; i <= sqrt(n); i++)
        if (n % i == 0)
            return false;
    return true;
}
int dem(long long n) {
    int dem = 0;
    for (long long i = 0; i < n; i++) {
        if (KTNT(i) == true)
            dem++;
    }
    return dem;
}
int main ()
{
    freopen("thi.inp","r",stdin);
    freopen("thi.out","w",stdout);
    long long n;
    cin >> n;
    cout << dem(n)<<" "<<tong(n);
    return 0;
}
  • Tạo 2 hàm để xét số đó là số nguyên tố và hoàn hảo hay không.
  • Dùng vòng lặp để xét và tăng biến đếm cho số nguyên tố và hoàn hảo.
  • Kết thúc vòng lặp thì in ra 2 biến đếm.

Bạn tự biết đúng/sai chứ, sai lại nhờ kiểm tra.

4 Likes

A post was merged into #1

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?