Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 640

/ вопрос открыт /

Здравствуйте, уважаемые эксперты!
Помогите пожалуйста решить следующую задачу:
Найти все натуральные числа не превосходящие N, которые делятся на каждую из своих цифр.

prog-mer Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: prog-mer (статус: Посетитель)
Вопрос отправлен: 10 января 2010, 22:23
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 1; последнее сообщение — 11 января 2010, 14:12; участников в обсуждении: 1.
IlluminatI

IlluminatI (статус: 2-ой класс), 11 января 2010, 14:12 [#1]:

Здравствуйте Олег Валерьевич!
Вот решение вашей задачи, правда непонятно что делать, если в числе содержится 0 (в моем решение он учитывается как делитель):

uses
  SysUtils;
 
var n: integer;
    k: integer = 0; // количество чисел
    i: integer; // параметр цикла
 
function Delit(x: integer): boolean;
var z, y: integer;
begin
 y:=x;
 while x (не равно) 0 do
  begin
   z:=x mod 10; // отделяем цифру от числа
   x:=x div 10; // уменьшаем число на 1 цифру 
   if z (не равно) 0 then  // проверка на 0, чтобы не было деления на 0
   if not(y mod z = 0) then // если не делится, сообщим об этом и выйдем
    begin
     Result:=false;
     exit;
    end;
  end;
 Result := true; // все ок, число делится 
end;
 
begin
 writeln('Input N'); // читаем N
 readln(n);
 for i:=1 to n do // цикл от 1..N
  if Delit(i) then // проверяем в функции
   begin
    writeln('Chislo ',i,' delitsa na vse svoi cifri');
    inc(k); // считаем количество 
   end;
 writeln('Vsego chisel: ', k); // выводим
 readln;
end.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:33
Выполнено за 0.02 сек.