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

  • Автор темы francuz
  • Дата начала
F

francuz

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

patriot2008

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

DarkKnight

Well-known member
01.08.2010
653
0
#3
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;

}