1. Даны два натуральных числа. Определить, является ли первое число перевертышем второго.
2. Дано натуральное число. Найти все го делители и подсчитать их количество.
3. Из промежутка чисел от А до В найти те, у которых больше всего делителей.
Другие языки программирования и технологии
Написать на паскале одну из трех задач, использовать процедуру или функцию. Заранее спасибо!
1. Первое и второе число - в строку. Вторую строку переворачиваем. Если строки равны - перевертышь, иначе не перевертышь
2. В цикле по i от 1 до данного числа: брать остаток от деления (mod) данного числа на i, если результат равен 0 (т. е. i является делителем данного числа) то выводим i и увеличиваем счетчик на один (inc). В конце цикла все делители выведены а в счетчике кол-во делителей.
3. Вторую задачу оформить как функцию, на входе которой число, а на выходе - кол-во делителей. Потом в цикле по i от A до B вызывать написанную функцию с i на входе и запоминать число с максимальным кол-вом делителей. По завершении цикла будем иметь ответ.
2. В цикле по i от 1 до данного числа: брать остаток от деления (mod) данного числа на i, если результат равен 0 (т. е. i является делителем данного числа) то выводим i и увеличиваем счетчик на один (inc). В конце цикла все делители выведены а в счетчике кол-во делителей.
3. Вторую задачу оформить как функцию, на входе которой число, а на выходе - кол-во делителей. Потом в цикле по i от A до B вызывать написанную функцию с i на входе и запоминать число с максимальным кол-вом делителей. По завершении цикла будем иметь ответ.
1.
function nrev(x: longint): longint;
var
r: longint;
begin
r := 0;
while x 0 do begin
r := r * 10 + x mod 10;
x := x div 10;
end;
nrev := r;
end;
var
a, b: longint;
begin
write('числа? ');
readln(a, b);
if b = nrev(a) then writeln('да') else writeln('нет');
end.
function nrev(x: longint): longint;
var
r: longint;
begin
r := 0;
while x 0 do begin
r := r * 10 + x mod 10;
x := x div 10;
end;
nrev := r;
end;
var
a, b: longint;
begin
write('числа? ');
readln(a, b);
if b = nrev(a) then writeln('да') else writeln('нет');
end.
Могу только подсказать пару трюков. Для того чтобы найти делитель для числа нужно проверить все числа пополам плюс само число и единица. То есть если взять число 7 делим его без остатка на 2 получаем 3 и проверяем или остаток больше нуля. Если так выводим числитель на экран. В случае с 7 это будут 1 и 7. Другой пример: 6
Выводим: 1, 6 и проверяем до 6/2=3 То есть проверим 2 остаток 0 выводим 2, проверим 3 остаток 0 выводим 3. Итого делители 1, 6, 2 и 3.
Используем процедуру из задачи номер 2 для сравнения двух чисел.
Выводим: 1, 6 и проверяем до 6/2=3 То есть проверим 2 остаток 0 выводим 2, проверим 3 остаток 0 выводим 3. Итого делители 1, 6, 2 и 3.
Используем процедуру из задачи номер 2 для сравнения двух чисел.
Похожие вопросы
- Turbo Pascal. 2 задачи на процедуры и функции
- PASCAL. В чем отличие процедур от функций. И любую ли задачу можно решить с помощью функции?
- паскаль процедуры и функции
- Как в паскале процедуру или функция сохранить в файл а потом её использовать?
- Приведите пожалуйста пример программы на ассемблере, использующая API функцию GlobalMemoryStatus. Заранее спасибо.
- Сделайте пожалуйста программу на Паскале. Заранее спасибо!!!!
- Помогите составить программу. тема "Процедуры и функции" при помощи Паскаль
- Процедуры и функции!!! Pascal!!!
- PascalABC. Когда применяются процедуры, вместо функций?
- Паскаль. Дано натуральное n. Вычислить используя цикл с постусловием + алгоритм