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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.02.2009, 18:08   #1
баста
Пользователь
 
Регистрация: 04.02.2009
Сообщений: 11
По умолчанию задача с циклом в паскале

Найти все простые, которые являются одновременно и разностью двух простых.
баста вне форума Ответить с цитированием
Старый 09.02.2009, 22:50   #2
mflat
Пользователь
 
Регистрация: 06.02.2009
Сообщений: 71
По умолчанию

Цитата:
Найти все простые, которые являются одновременно и разностью двух простых.
Эээ..а можно как-нибудь по другому это объяснить?
╓-----┴-----╜
mFlat
mflat вне форума Ответить с цитированием
Старый 10.02.2009, 03:10   #3
tsergey
Форумчанин
 
Регистрация: 10.02.2009
Сообщений: 123
По умолчанию

укажи диапазон т.е. ограничения от до какого числа нужно искать простые числа
tsergey вне форума Ответить с цитированием
Старый 10.02.2009, 13:53   #4
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Поскольку из всех простых чисел четное только 2, то разность двух простых чисел может быть простым числом только если она равна 2, поскольку разность двух нечетных чисел есть число четное. Поэтому алгоритм поиска сводится к поиску простых чисел, которые в сумме с числом 2 дают также простое число.
Код:
uses crt;
function Prost(x:longint):boolean;{функция для определения простых чисел}
var i:longint;
begin
for i:=2 to round(sqrt(x)) do
if x mod i=0 then
  begin
   Prost:=false;
  end;
end;
var n,i,k:longint;
begin
clrscr;
write('Vvedite verhnij predel n=');
readln(n);
writeln('2');{первое число 2}
k:=1;{счетчик чисел для удобства просмотра результата, потому что при больших n все на экран не войдет}
for i:=3 to n-2 do {в цикле ищем нужные числа}
if Prost(i)and Prost(i+2) then
   begin
    writeln(i);{выводим}
    inc(k);{считаем}
    if k mod 20=0 then readln;{через каждые 20 задержка}
   end;
readln
end.
puporev вне форума Ответить с цитированием
Старый 10.02.2009, 20:00   #5
баста
Пользователь
 
Регистрация: 04.02.2009
Сообщений: 11
По умолчанию

Цитата:
Сообщение от tsergey Посмотреть сообщение
укажи диапазон т.е. ограничения от до какого числа нужно искать простые числа
От 1 до 100,например.
баста вне форума Ответить с цитированием
Старый 10.02.2009, 20:02   #6
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Цитата:
От 1 до 100,например.
1 не есть простое число, а 2 заведомо подходит по условию, поэтому от 3 до 100. Тебе чего, одного кода мало?
puporev вне форума Ответить с цитированием
Старый 10.02.2009, 22:16   #7
баста
Пользователь
 
Регистрация: 04.02.2009
Сообщений: 11
По умолчанию

мне то хватит, вдруг ты для себя решил сделать задачу)кстати спасибо puporev
баста вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на Паскале Вика М. Помощь студентам 4 02.12.2010 17:37
Задача с циклом for в c++ Many man Помощь студентам 5 14.12.2008 12:01
Задача с циклом POPOV Общие вопросы Delphi 13 01.02.2008 20:33