Программа является ли число палиндромом паскаль

Рассмотрим следующую задачу для подготовки к ЕГЭ с сайта К.Полякова (задача 25, вариант 1):

(№ 4410) (Л. Шастин) Среди чисел, больших 520000, найти такие, сумма всех делителей которых, не считая единицы и самого числа, образует число-палиндром (например, число 1221: если его «перевернуть», получается то же самое число). Вывести первые пять чисел, удовлетворяющих вышеописанному условию, справа от каждого числа вывести его максимальный делитель.

Получить список делителей числа можно с помощью функции divisors, описанной в статье «Разложение на множители и простые числа».

Как определить, является ли число палиндромом? Наверно, самый короткий способ — преобразовать число в символьную строку и проверить строку «на палиндромность». Самое простое — сравнить исходную строку с «перевернутой задом наперед». В Питоне получить из некой строки s перевернутую строку очень просто: s[::-1]. (Если в операции получения подстроки записаны три параметра, то третий параметр — это шаг. С его помощью можно получить, например, каждый второй или каждый третий символ, а можно и перевернуть строку.)

Программирование на С++. Урок 90. Палиндром

Для пишущих на других языках приведу функцию, которая проверяет, является ли строка палиндромом (эта функция легоко реализуется на паскале или С++). Создадим пустую строку и будем присоединять к её началу поочередно символы исходной строки. Мы получим строку «задом наперед». Если она равна исходной строке, то наша строка — палиндром.

Вот текст функции

def palindrom(s):
t=»
for i in range(len(s)): t=s[i]+t
return s==t

Основная программа очень проста. По очереди раскладываем числа 520001, 520002 и т.д. на множители, вычисляем их сумму. Если сумма — палиндром, то печатаем число и его наибольший множитель. В переменной k мы подсчитываем количество найденных чисел. Когда будет найдено пять чисел, цикл завершается.

Читайте также:
Лучшие программы для Андроид для девушек

Для преобразования числа в символьную строку используем функцию Питона str, для суммирования элементов массива — функцию sum и для поиска максимального элемента массива — функцию max.

Приведем полный текст программы:

def divisors(n):
d=[]
k=2
while k*k if n%k == 0:
d.append(k)
k2 = n//k
if k2 > k: d.append(k2)
k += 1
return d

n=520001
k=0
while k < 5:
d = divisors(n)
if len(d) > 0 and str(sum(d)) == str(sum(d))[::-1]:
print(n,max(d))
k += 1
n += 1

Условие len(d) > 0 нужно для того, чтобы убедиться, что массив делителей не пустой. (Если массив пустой, то функция sum выдаст 0, он будет преобразован в строку «0», которая, очевидно, является палиндромом, а при попытке найти в пустом массиве наибольший элемент возникнет ошибка выполнения. Проверка len(d)> 0 исключает подобные неприятности.)

Результат выполнения программы следующий:

520211 16781
520993 47363

Математические операции для поиска палиндрома


521653 47423
521947 16837
522077 22699

Он совпадает с приведенным на сайте ответом.

Программа выполняется очень быстро (десятые доли секунды).

(c) Ю.Д.Красильников, 2021-2022 г.

Источник: ege-informatika-yk.blogspot.com

Программа является ли число палиндромом паскаль

Помогите написать программу с использование функций или процедур
Написать программу, позволяющую определить является ли натуральное число палиндромом.

Участник клуба
Регистрация: 05.11.2013
Сообщений: 1,602
Регистрация: 27.05.2014
Сообщений: 2

uses crt;
var a,b,c:word;
begin
write(‘Введите число:’);readln(a);
b:=0;
c:=a;
while c>0 do begin
b:=b*10+c mod 10;
c:=c div 10;
end;
if a=b then write(‘Да’) else write(‘Нет’)
end.

Как просто делать программу с полиндромом знаю. а вот через процедуры и функции нет.

Участник клуба
Регистрация: 05.11.2013
Сообщений: 1,602
Made In USSR!
Регистрация: 01.09.2010

Сообщений: 3,657

function Reverse(N:Longint):Longint; var buf:longint; begin buf:=0; while n>0 do begin buf:=buf*10+n mod 10; n:=n div 10; end; Reverse:=buf; end; var c:Longint; begin Readln(c); Writeln(c=Reverse(c)); end.

Читайте также:
Какая программа воспроизводит музыку

«. В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал. »
(c) Юрий Клинских aka «Хой»

Источник: www.programmersforum.ru

Программирование на языке Pascal от Елены Клейн

Хотите стать программистом? Научиться писать программы? С чего начать? Давайте начнем с языка Паскаль.

пятница, 7 ноября 2014 г.

Занятие 9. Палиндром, или почему Аргентина манит негра?

Сегодня мы рассмотрим еще одну стандартную олимпиадную (уровня районной олимпиады) задачу: проверить, является ли НЕЧТО палиндромом.

Во-первых: что такое палиндром. Палиндром — это запись, которая одинаково читается слева направо и справа налево. Например, число 12321 можно считать палиндромом. Как и слово кабак. А бывают целые фразы — палиндромы: Аргентина манит негра; А роза упала на лапу Азора.

Встречаются стихи — палиндромы и даже рассказы — палиндромы. О романах-палиндромах лично я не слышала, но я верю в людей.

Во-вторых: почему НЕЧТО. Потому, что в зависимости от того, исследуем мы на палиндромность число, слово или фразу — задача может быть решена по-разному. Давайте рассмотрим все варианты решений.

Итак, вариант 1.

Проверить, является ли число палиндромом.

Идея решения: вводим число a — то, которое будем проверять. Потом, используя цикл While — «пока» с помощью двух меняющихся в ходе выполнения цикла переменных b и c делаем следующую операцию: «откусываем» последнюю цифру от a и запоминаем её как временное значение c. На следующем витке цикла мы умножаем полученное ранее c на 10, и прибавляем следующую цифру. И так, пока не получим конечное число c, которое по сути является числом a, записанным задом наперед.

Затем мы сравниваем a и c, и, если числа равны, выводим сообщение о том, что число — палиндром, или о том, что не палиндром, в противном случае.

Читайте также:
Как скачивать программы на ipod touch

Перед вами результат работы программы, реализовавшей эту идею решения:

Введите целое положительное число a=123456

c=6 b=12345

c=65 b=1234

c=654 b=123

c=6543 b=12

c=65432 b=1

c=654321 b=0

654321

Не палиндром

Понятен ли вам принцип? Возникает вопрос, как «откусить» цифру. Тут нам помогут функции div и mod, о которых вы можете прочесть в Словарике. Коротко:

Источник: informatika117pas.blogspot.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru