Home > Lập trình > Số hoàn hảo

Số hoàn hảo


Số hoàn thiện (hay còn gọi là số hoàn chỉnh, số hoàn hảo, perfect number) là số nguyên dương có tổng các ước số nguyên dương bé hơn nó bằng chính nó.
Ví dụ: 28 là số hoàn hảo vì tổng các ước bé hơn nó bằng chính nó (1+2+4+7+14=28)
Bài tập: Tìm các số hoàn hảo nhỏ hơn 1 số nguyên dương  n cho trước
Hàm isPerfect(n) để xác định 1 số nguyên dương n có phải số hoàn hảo, hàm trả về 1 nếu n là số hoàn hảo, ngược lại hàm trả về 0
#include <stdio.h>
#include <conio.h>

int isPerfect(int n)
{
    int tong=0;
    for (i=1; i<n && tong<=n; i++)
        if (n%i==0) tong+=i;
    if (tong==n) return 1;
    else return 0;
}

void main()
{
    clrscr();
    int n;
    printf("Nhap vao 1 so nguyen duong:");
    scanf("%d",&n);
    for (i=1;i<n;i++)
        if (isPerfect(i))
             printf("%d\n",i);
    getch();
}
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: