Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2011, 19:50   #1
NatawaB
 
Регистрация: 10.01.2011
Сообщений: 5
Восклицание Задача про красивый заголовок

В один приятный вечер Кирилл решил написать задачу, но он никак не мог придумать заголовок к задаче. Кирилл считает заголовок красивым, если он состоит из одного слова и его длина является простым числом (простое число – число, которое делится только на себя и на единицу). Кирилл написал предварительный заголовок. Он хочет удалить из него минимальное количество символов справа, чтобы получить красивый заголовок. Помогите ему это сделать
Формат входных данных
Единственная строка входного файла содержит предварительный заголовок S. Строка S состоит только из прописных букв английского алфавита и ее длина не меньше 2 и не больше 100.
Формат выходных данных
Выведите красивый заголовок, который получается удалением из строки минимального количества букв справа.
Например
входной файл - beautiful
выходной файл - beautif
NatawaB вне форума Ответить с цитированием
Старый 10.01.2011, 20:08   #2
matr_
 
Регистрация: 10.01.2011
Сообщений: 8
По умолчанию

в 9 часов вечера решение устроит?
matr_ вне форума Ответить с цитированием
Старый 10.01.2011, 21:34   #3
Shift_sk
Форумчанин
 
Регистрация: 20.11.2010
Сообщений: 221
По умолчанию

Код:
var s,s2:string;i,j,k,nat,c,a:integer;
begin
read(s);
for i:=2 to length(s) do begin
for j:=2 to trunc(sqrt(i))+1 do begin
a:=i mod j;
if a=0 then k:=k+1;
end;
if k=0 then nat:=i;
k:=0;
end;
c:=length(s)-nat;
delete(s,nat+1,c);
writeln(s);
end.
www.bezperepl.at.ua
Код:
...
Shift_sk вне форума Ответить с цитированием
Старый 11.01.2011, 10:56   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Shift_sk, решение, похоже, вполне рабочее.
есть несколько замечаний.
1) а зачем Вы перебираете ВСЕ простые числа от 2 до длины строки?
лучше крутить цикл от legnth(s) downto 2
и прерывать, как только нашли ближайшее к длине строки простое число.

2) некрасиво, что не проверяется, если длина строки уже равно простому число,
зачем удалять ноль символов?..

3) 2-ка - простое число. Если длина исходной строки будет равна двум - то ваш код вернёт ошибочный результат
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.01.2011, 15:07   #5
Shift_sk
Форумчанин
 
Регистрация: 20.11.2010
Сообщений: 221
По умолчанию

писал на скорую руку!
насчет 3 пункта- встречался с задачей в которой было сказано что двойку не учитывать в простые числа!поэтому и тут написал также!
в общем если немного подправить будет супер!
www.bezperepl.at.ua
Код:
...
Shift_sk вне форума Ответить с цитированием
Старый 11.01.2011, 19:50   #6
ksu9
Новичок
Джуниор
 
Регистрация: 23.03.2010
Сообщений: 2
Радость

Ну что это такое:
"нажимайте на отзыв если я вам помог!"
ksu9 вне форума Ответить с цитированием
Старый 11.01.2011, 19:53   #7
Shift_sk
Форумчанин
 
Регистрация: 20.11.2010
Сообщений: 221
По умолчанию

www.bezperepl.at.ua
Код:
...
Shift_sk вне форума Ответить с цитированием
Старый 15.01.2011, 07:42   #8
olimpiadnik
Новичок
Джуниор
 
Регистрация: 14.01.2011
Сообщений: 4
Стрелка Красава!!!

Спсибо за решение! сам сижу на олимпиаде! Рахмет от души!
olimpiadnik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача про мост Sparky Помощь студентам 23 12.09.2010 19:51
Задача про компоненты stscolt Помощь студентам 3 12.04.2009 12:46
Задача про лифт Askar_g Общие вопросы C/C++ 3 05.02.2009 13:01
Задача про переключатели Night Помощь студентам 5 21.01.2007 18:15