1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

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

Тема в разделе "Вопросы новичков и не только", создана пользователем francuz, 17 июн 2010.

  1. francuz

    francuz Гость

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

    patriot2008 Гость

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

    DarkKnight Well-Known Member

    Репутация:
    0
    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Код:
    /*
    Дано натуральное число 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;
    
    }
     
Загрузка...

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