IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> помогите написать программу с процедурами
aigulia
сообщение 1.06.2010 10:01
Сообщение #1





Группа: Пользователи
Сообщений: 4
Пол: Женский

Репутация: -  0  +


Два простых числа называются «близнецами», если они отличаются друг от друга на 2 (таковы, например, числа 41 и 43). Напечатать все пары близнецов из отрезка [n,2n], где n – заданное целое число, большее 2.
Спасибо, заранее!!
Turbo Pascal
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 4)
Freedom
сообщение 1.06.2010 11:33
Сообщение #2


Пионер
**

Группа: Пользователи
Сообщений: 113
Пол: Мужской
Реальное имя: Надир

Репутация: -  6  +


 var i,a,n,j:longint;
prostoe:integer;
begin
writeln('BBEDUTE N');
readln(n);
For i:=n to 2*n do begin
For j:=2 to 30 do If (i mod j=0) or ((i+2) mod j=0) then inc(Prostoe);
If i<=30 then If prostoe=1 then writeln(i,' ',i+2);
If i>30 then If prostoe=0 then writeln(i,' ',i+2);
prostoe:=0;
end;
readln;
end.

Вот как то так наверное. Может быть можно попроще какнибудь


--------------------
From ZERO to HERO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 1.06.2010 11:54
Сообщение #3


Гость






Есть очень интересный способ определения "близнецов" одной формулой, не проверяя отдельно простоту обоих чисел:
// проверялось на FPC
function fact(n: integer): int64;
var i: integer;
begin
result := 1;
for i := 1 to n do
result := result * i
end;

var
i, n: integer;
value: int64;
begin
n := 10;
for i := n to 2 * n do
begin
value := 4*fact(i-1) + i + 4;
if value mod (i*(i+2)) = 0 then writeln(i:4, i + 2:4);
end;
end.

т.е., если (4*(n - 1)! + n + 4) mod (n * (n + 2)) = 0, то пара чисел n и n+2 - "близнецы". К сожалению, в данном случае он наверное неприменим, из-за сложности с вычислением факториалов чисел больших, чем 13. Но если в программе уже есть использование длинной арифметики (или в языке - типы, способные хранить огромные значения), то этот способ будет выигрышным...
 К началу страницы 
+ Ответить 
aigulia
сообщение 1.06.2010 14:31
Сообщение #4





Группа: Пользователи
Сообщений: 4
Пол: Женский

Репутация: -  0  +


Freedom, volvo, Огромное вам спасибо!!!!
Оба ответа ОЧЕНЬ пригодились)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 2.06.2010 1:00
Сообщение #5


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(aigulia @ 1.06.2010 15:31) *
Freedom, volvo, Огромное вам спасибо!!!!
Оба ответа ОЧЕНЬ пригодились)
Вау! aigulia ответила!! вот уж, не ждал.. ))

"Спасибо" интерпретирую как просьбу поднять репу Freedom'у и volvo, и с удовольствием это делаю.. ))


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 14:17
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"