Форум: Форум C++Разное
Новые темы: 00
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Найти первые два избыточных числа
 
 автор: Cena   (17.11.2011 в 22:34)   письмо автору
 
 

Найти первое нечетное, а второе четное избыточное число (избыточное число-это положительное целое число n, сумма положительных делителей, которого превышает 2n), (функцией оформить проверку числа; результатом функции будет 1, если число избыточное, 0 - в противном случаем).

  Ответить  
 
 автор: cheops   (17.11.2011 в 22:57)   письмо автору
 
   для: Cena   (17.11.2011 в 22:34)
 

А такие числа вообще существуют? Что-то я их в лоб обнаружить не могу
#include <stdio.h>
#include <iostream>
using namespace std;

// Прототип функции
int is_isbyt_number(int number);
// Главная функция
int main()
{
  int i = 0;
  for(i = 0; i < 10000; i++)
  {
    if(is_isbyt_number(i)) cout << i << endl;
  }
  // Пауза перед закрытием
  system("PAUSE");
  return 0;
}
// Является ли число избыточным?
int is_isbyt_number(int number)
{
  int i = 1, total = 0;
  if(number <= 0) return 0;
  for(i = 1; i <= number; i++)
  {
    if(!(number % i)) total += i;
  }
  if(total > 2 * number) return 1;
  else return 0;
}

  Ответить  
 
 автор: cheops   (17.11.2011 в 22:59)   письмо автору
 
   для: Cena   (17.11.2011 в 22:34)
 

Вообще по-моему не очень корректная формулировка, избыточные числа это вроде те, у которых сумма делителей не превышает само число? В таком виде числа существуют, начиная с 12...

  Ответить  
 
 автор: cheops   (17.11.2011 в 23:06)   письмо автору
 
   для: cheops   (17.11.2011 в 22:59)
 

В такой формулировке программа может выглядеть следующим образом
#include <stdio.h>
#include <iostream>
using namespace std;

// Прототип функции
int is_isbyt_number(int);
// Главная функция
int main()
{
  int i = 0, flag = 0;;
  do
  {
    i++;
    if(is_isbyt_number(i))
    {
      cout << i << endl;
      flag++;
    }
  }
  while(flag < 2);
  // Пауза перед закрытием
  system("PAUSE");
  return 0;
}
// Является ли число избыточным?
int is_isbyt_number(int number)
{
  int i = 1, total = 0;
  if(number <= 0) return 0;
  for(i = 1; i < number; i++)
  {
    if(!(number % i)) total += i;
  }
  if(total > number) return 1;
  else return 0;
}
В этом случае находится первые два числа - 12 и 18.

  Ответить  
 
 автор: Cena   (17.11.2011 в 23:10)   письмо автору
 
   для: cheops   (17.11.2011 в 23:06)
 

Здраствуйте, спасибо за помощь, в формулировки я не ошибся, на счет избыточного числа

  Ответить  
 
 автор: cheops   (17.11.2011 в 23:12)   письмо автору
 
   для: Cena   (17.11.2011 в 23:10)
 

Хм... википедия "считает", что у избыточных чисел другое определение http://ru.wikipedia.org/wiki/Избыточное_число

  Ответить  
 
 автор: Cena   (17.11.2011 в 23:12)   письмо автору
 
   для: cheops   (17.11.2011 в 23:06)
 

Подскажите пожалуйста, а что такое flag и total?

  Ответить  
 
 автор: cheops   (17.11.2011 в 23:16)   письмо автору
 
   для: Cena   (17.11.2011 в 23:12)
 

total - это сумма делителей
flag - это переменная-счетчик, она подсчитывает количество найденных ответов, чтобы когда их будет 2, прекратить выполнение цикла

  Ответить  
 
 автор: Cena   (17.11.2011 в 23:19)   письмо автору
 
   для: cheops   (17.11.2011 в 23:16)
 

Избыточное число — положительное целое число n, сумма положительных собственных делителей (отличных от n) которого превышает n. Я тоже нашел определение в Википедии.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования