Пятница, 24.01.2025
Pascal 4 All
[ · Новые сообщения · Участники · Правила форума · Поиск · RSS ]

 

  • Страница 1 из 1
  • 1
Модератор форума: Seqular, Pavel  

Задачи по циклам
Van_der_VlaadДата: Воскресенье, 09.11.2008, 00:17 | Сообщение # 1
Старый знакомый
Группа: Пользователи
Сообщений: 35
Репутация: 1
Замечания: 0%
Статус: Offline
Уважаемые знатоки Паскаля! Хочу предложить вам ряд задач на циклы.

1. Последовательно вводятся N целых чисел. Найти минимальное из положительных простых значений.
2. Дано натуральное число n. Проверить, будут ли все цифры числа различными.
3. Составить алгоритм для нахождение всех автоморфных чисел на отрезке [m;n]. Автоморфным называется число, ктр равно последним числам своего квадрата. Например: 5(в квадрате)=25; 25(в квадрате)=625.
4. Найти натуральное число из диапазона от 1 до n с максимальной суммой простых делителей.
5. Среди всех натуральных чисел из интервала [m;n] найти и вывести те, которые образуют взаимно простую пару с числом, введенным с клавиатуры.

Также хочу отметить, что задачи желательно решить до завтрашнего вечера и что мне не обязательно полное решение, а достаточно куска кода, где прослеживается алгоритм решения

 
AlexanderДата: Воскресенье, 09.11.2008, 01:03 | Сообщение # 2
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: Offline
1) Под "значениями" понимать введённые числа?
2) Перевести число в строку и проверить при помощи вложенного цикла.
3) Это уже обсуждалось http://pascal-for-all.ucoz.ru/forum/11-143-1 .
Над 4 и 5 стоит подумать, их конечно можно и "в лоб" решить, но это не спортивно smile .


Скажем дружно- нафиг нужно!
 
Van_der_VlaadДата: Воскресенье, 09.11.2008, 02:40 | Сообщение # 3
Старый знакомый
Группа: Пользователи
Сообщений: 35
Репутация: 1
Замечания: 0%
Статус: Offline
1) да
2)хм...брать каждый символ и проверять есть ли он еще раз в строке. если нет, то счетчику присваеваем +1. в итоге, если счетчик равен длине, то все ок?
3) тут конешно мусорка у вас там, нужно разобраться

4,5) не стоит особо думать, чем проще-тем лучше, тут как раз в этом фишка. сразу хочу попросить-без слишком умных вещей, я понимаю что они облегчают код, но тут-чем проще, тем лучше.

----------
З.Ы. извините, не принимал последнее время участия в решение задач в связи с тем, что лежал в больнице с аппендицитом.

 
AlexanderДата: Воскресенье, 09.11.2008, 03:35 | Сообщение # 4
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: Offline
1) в таком случае в условии не нужно было оговаривать, что это положительные числа(простое число всегда положительно). Следует воспользоваться примерно такой функцией для определения простоты числа:
Code
   test:=true;
     if x=2 then .... мы нашли наименьшее просто, можно вообще программу завершать.
     else if not odd(x) then
        test:=false   {составное}
     else
        begin
           i:=3;
           while i<=sqrt(x) do
              if x mod i=0 then
                 begin
                    test:=false; {составное}
                    break;
                 end
              else
                 inc(i,2);
        end;

С её помощью нужно проверить все введённые числа.
Quote (Van_der_Vlaad)
2)хм...брать каждый символ и проверять есть ли он еще раз в строке. если нет, то счетчику присваеваем +1. в итоге, если счетчик равен длине, то все ок?

Нет.
Code
for i:=1 to n-1 do
     for j:=i+1 to n do
        if s[i]=s[j] then
           begin
              WriteLn('нет');
              exit;
           end;
WriteLn('да');

Quote (Van_der_Vlaad)
3) тут конешно мусорка у вас там, нужно разобраться

11 сообщений, из которых менее половины информативные- просто непомерно много.
4) эквивалентна задаче: "найти самое большое простое число не превосходящее n."
5) найти простые делители числа, введённого с клавиатуры, и запомнить их в массиве. проверить, делятся ли числа из интервала хоть на одно из массива.
Quote (Van_der_Vlaad)
лежал в больнице с аппендицитом.

С выздоровлением.


Скажем дружно- нафиг нужно!

Сообщение отредактировал Alexander - Воскресенье, 09.11.2008, 03:36
 
Van_der_VlaadДата: Воскресенье, 09.11.2008, 19:10 | Сообщение # 5
Старый знакомый
Группа: Пользователи
Сообщений: 35
Репутация: 1
Замечания: 0%
Статус: Offline
1) если не затруднит, не могли бы Вы предложить более понятный способ решения этой задачи?...
2) спасибо, тут вроде пока все понятно
3)...
4)ну по идее, если мыслить прямолинейно, то нам в этой задаче нужно брать каждое число из диапазона, находить его делители, вычленять простые, и находить их сумму. хотя стоп стоп стоп! я понял! извините, вопрос этот отпадает. но появляется другой. каков алгоритм определения числа на простое?
5)вот эта задача у меня вызывает спорные мысли. не могли бы вы ее написать?

P.S. временной промежуток расширяется до вечера вторника

 
snaper1993Дата: Воскресенье, 09.11.2008, 19:24 | Сообщение # 6
Бывалый
Группа: Пользователи
Сообщений: 121
Репутация: 2
Замечания: 0%
Статус: Offline
4 как я думаю:
Code

for i:=1 to n do
if (i mod 10)<1 then writeln('prostoe');

ето моя мысль!


Я - желанный гость Сайта взаимопомощи программистам Pascal А ты?
 
SeqularДата: Воскресенье, 09.11.2008, 19:31 | Сообщение # 7
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
Van_der_Vlaad, Насчет простых чисел, посмотрите тут

Поддерживаю также проект сообщество молодых сисадминов
 
AlexanderДата: Воскресенье, 09.11.2008, 20:47 | Сообщение # 8
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: Offline
Quote (Seqular)
Насчет простых чисел, посмотрите тут

не смотри там, автор не знаком с теорией чисел. Если у числа есть простой делитель, то он меньше или равен квадратному корню из этого числа+там ещё и деление на единицу проверяется, поэтому по тому алгоритму любое число составное.
Quote (snaper1993)
4 как я думаю:

Ты вообще в курсе, какие числа называются простыми?
Quote (Van_der_Vlaad)
1) если не затруднит, не могли бы Вы предложить более понятный способ решения этой задачи?...

Я и так 80% кода уже написал. Давай уже свой код.
Насчёт остальных задач- предлагаю сначала разобраться с первой.


Скажем дружно- нафиг нужно!
 
snaper1993Дата: Воскресенье, 09.11.2008, 23:37 | Сообщение # 9
Бывалый
Группа: Пользователи
Сообщений: 121
Репутация: 2
Замечания: 0%
Статус: Offline
Alexander, я чото не про то подумал! А какие числа простые!

Я - желанный гость Сайта взаимопомощи программистам Pascal А ты?
 
AlexanderДата: Воскресенье, 09.11.2008, 23:45 | Сообщение # 10
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: Offline
Quote (snaper1993)
А какие числа простые!

Это вопрос или восклицание?


Скажем дружно- нафиг нужно!
 
Van_der_VlaadДата: Понедельник, 10.11.2008, 00:00 | Сообщение # 11
Старый знакомый
Группа: Пользователи
Сообщений: 35
Репутация: 1
Замечания: 0%
Статус: Offline
Quote

А какие числа простые!

те которые делятся только на себя и на единицу.

Quote
Насчёт остальных задач- предлагаю сначала разобраться с первой.

да, действительно.
я, честно говоря не совсем понял ваше решение.
мой алгоритм предполагает следующее -
вводим в цикле, значения последовательности, каждое введенное значение проверяем на положительность и "простоту". если да, то находим сравниваем с минимальным и т.д.
проюлема в другом-я не совсем понял как определять "простоту" числа и какое значение задатьь первым минимальным.

 
AlexanderДата: Понедельник, 10.11.2008, 00:14 | Сообщение # 12
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: Offline
Code
   test:=true;
    if x<2 then
       test:=false
    else if x=2 then
    else if not odd(x) then
       test:=false
    else
       begin
          i:=3;
          while i<=sqrt(x) do
             if x mod i=0 then
                begin
                   test:=false;
                   break;
                end
             else
                inc(i,2);
       end;
    WriteLn(test);

Эта программа выведет на экран true, если число простое и false, если составное.
Quote (Van_der_Vlaad)
те которые делятся только на себя и на единицу.

нет, простое число, это натуральное число, которое имеет ровно 2 различных делителя.


Скажем дружно- нафиг нужно!
 
snaper1993Дата: Понедельник, 10.11.2008, 05:27 | Сообщение # 13
Бывалый
Группа: Пользователи
Сообщений: 121
Репутация: 2
Замечания: 0%
Статус: Offline
Quote

нет, простое число, это натуральное число, которое имеет ровно 2 различных делителя.

то ето и есть числа которые деляться на себя и на 1 потомушто все натуральные числа деляться на себя и на 1!
ето и есть 2 различных делитиля!


Я - желанный гость Сайта взаимопомощи программистам Pascal А ты?
 
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2025
Используются технологии uCoz
javascript:;" rel="nofollow" onclick="loginPopupForm(); return false;