quynhbkhn quynhbkhn Author
Title: [C/C++] Cách tìm số hoàn hảo
Author: quynhbkhn
Rating 5 of 5 Des:
Số hoàn thiện là các  số nguyên dương  n sao cho: n = s(n), trong đó, s(n) là  hàm tổng giới hạn các ước  của n (nghĩa là tổng các  ước ...
Số hoàn thiện là các số nguyên dương n sao cho:
n = s(n),
trong đó, s(n) là hàm tổng giới hạn các ước của n (nghĩa là tổng các ước chính thức của n), hoặc:
σ(n) = 2n,
trong đó, σ(n) là hàm tổng các ước của n (nghĩa là tổng các ước của n, bao gồm cả n).
Euclid đã khám phá ra 4 số hoàn thiện nhỏ nhất dưới dạng: 2n−1(2n − 1):
khi n = 2:   21(22 − 1) = 6
khi n = 3:   22(23 − 1) = 28
khi n = 5:   24(25 − 1) = 496
khi n = 7:   26(27 − 1) = 8128.

Đây là code:

#include<stdio.h>

bool soHoanHao(int n)
{
int tongUoc = 0;
for(int i=1;i<n;i++)
{
if(n%i==0) tongUoc = tongUoc+i;
}
if(tongUoc == n) return true;
else return false;
}
int main()
{
int n;
printf("Nhap n:");
scanf("%d",&n);
if(soHoanHao(n)==true) printf("%d la so hoan hao!",n);
else printf("%d khong phai la so hoan hao!",n);
return 0;
}
để hiểu biết thêm các bạn truy cập:http://hocccoban.org/2014/12/07/cc-cach-tim-so-hoan-hao.html

About Author

Advertisement

Post a Comment

  1. Code e như này có được ko ạ,e coi số hoàn hảo là tổng các ước nhỏ hơn số đó thì là số hoàn hảo ví dụ số 6

    #include
    #include

    int main()
    {
    int i,a,s;
    printf("Nhap vao so :");
    scanf("%d",&a);
    s=0;
    for(i=2;i<a;i++)
    {
    if(a%i==0)
    s=s+1;
    }
    if(s<a)
    {
    printf("%d la so hoan thien",a);
    }
    else
    printf("%d La so khong hoan thien ",a);
    return 0;
    }

    ReplyDelete

 
Top