Задача: Нахождение наименьшего делителя на заданном интервале

Тема в разделе "C/C++/C#", создана пользователем francuz, 17 июн 2010.

  1. francuz

    francuz Гость

    Дано натуральное число N. Найти наименьшее число М (N < M < 2N) которое делится на сумму цифр числа N (без остатка). Если такого числа нет, то вывести слово «нет». Пример. N = 12 345, М = 12360. Число 12 360 делится на число 15 — сумму цифр числа N.
     
  2. patriot2008

    patriot2008 Гость

    пиши washington2006[at]rambler.ru . Сделаем все быстро, качественно и недорого. ))
     
  3. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Код (C++):
    /*
    Дано натуральное число N. Найти наименьшее число М (N < M < 2N)
    которое делится на сумму цифр числа N (без остатка). Если такого числа нет, то вывести слово «нет».
    */

    /*
    codeby.net
    Autor: DarkKnight125
    */

    #include <iostream>

    using namespace std;

    void main(void)
    {
    setlocale(LC_ALL,"Russian");
    int n,m;
    int Sum = 0; //Сумма цифр числа n
    cout<<"Введите натуральное число N = ";
    cin>>n;
    int temp = n;
    while (temp)
    {
    Sum += temp%10;
    temp/=10;
    }

    bool isTrue = false;
    for (int i=n+1; i< 2*n; i++)
    {
    if (i%Sum == 0)
    {
    m = i;
    isTrue = true;
    }
    }

    cout<<endl<<"Результат : ";
    if (isTrue)
    cout<<m<<endl;
    else cout<<"искомого числа M в диапазоне N<M<2*N - не найдено"<<endl;

    }
     
Загрузка...

Поделиться этой страницей