Пятница, 03.05.2024, 21:15
Приветствую Вас Гость | RSS
Меню сайта
Категории раздела
Вход на сайт
Поиск
Календарь
«  Июнь 2018  »
ПнВтСрЧтПтСбВс
    123
45678910
11121314151617
18192021222324
252627282930

Главная » 2018 » Июнь » 25 » Perfect Numbers
17:13
Perfect Numbers

An integer number is said to be a perfect number if its factors, including 1 (but not the number itself), sum to the number. For example, 6 is a perfect number because 6 = 1 + 2 + 3. Write a function isPerfect that determines whether parameter number is a perfect number. Use this function in a program that determines and prints all the perfect numbers between 1 and 1000. Print the factors of each perfect number to confirm that the number is indeed perfect. Challenge the power of your computer by testing numbers much larger than 1000.

Целое число называют совершенным, если сумма его делителей, включая 1 (но не само число), равна этому числу. Например, 6 является совершенным числом, поскольку  6 = 1 + 2 + 3. Напишите функцию isPerfect. которая определяет, является ли ее параметр совершенным числом. Используйте эту функцию в программе, которая находит и печатает все совершенные числа в диапазоне от 1 до 1000. Напечатайте все делители для каждого совершенного числа, чтобы убедиться, что число действительно является совершенным. Бросьте вызов своему компьютеру, попробовав проверить числа больше 1000.

#include <stdio.h>
int isPerfect(int);

int main()
{
    for(int i = 1; i <= 10000; i++)
    {
        if(isPerfect(i) == 1)
        {
            printf("%d factors: ", i);
            for(int j = 1; j <= i; j++)
            {
                if(i%j == 0 && i != j)
                    printf("%d ", j);
            }
            printf("%s", "\n");
        }
    }
}

int isPerfect(int a)
{
        int sum = 0;
        for( int j = 1; j < a; j++)
        {
            if(a%j == 0)
            sum += j;
        }
        if( sum == a)
            return 1;
        else
            return 0;
}

 

Категория: C (задачи) | Просмотров: 270 | Добавил: alex | Рейтинг: 0.0/0
Всего комментариев: 0