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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2010, 19:50   #1
Alexsey1991
Пользователь
 
Регистрация: 14.12.2009
Сообщений: 32
Вопрос Подпрограммы. Проверка гипотизы Гольбаха для числа

Решите
Дано число n>2;роверить для этого числа гипотизу Гольбаха.Это гипотиза заключается в том, что каждое число n, больше двух, представляется в виде суммы двух простых чисел.Определить функцию, распознающую простое число.Работа в паскале!
Alexsey1991 вне форума Ответить с цитированием
Старый 06.04.2010, 19:54   #2
Google2010
Форумчанин
 
Регистрация: 16.02.2010
Сообщений: 316
По умолчанию

Код:
Определить функцию, распознающую простое число
Код:
function prime(n:longint):boolean;
var i:integer;
f:boolean;
begin
 f:=true;
 for i:=2 to round(sqrt(n)) do if n mod i=0 then
 begin
  f:=false;
  break;
 end;
 prime:=f;
end;
Google2010 вне форума Ответить с цитированием
Старый 12.04.2010, 08:33   #3
Alexsey1991
Пользователь
 
Регистрация: 14.12.2009
Сообщений: 32
По умолчанию

а полностью код не можете пожалуйста написать!!
Alexsey1991 вне форума Ответить с цитированием
Старый 12.04.2010, 09:10   #4
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

Код:
Var n,item1:integer; hypot:boolean;
Function Simple(n:integer):boolean;
Var i:integer;
simp:boolean;  {simp=False, если встретится делитель числа n}
begin
if n=2 then Simple:=True
else if n mod 2=0 then Simple:=False
else  begin
simp:=True;
i:=3;
while (i<=trunc(sqrt(n))) and simp do
if n mod i=0 then simp:=False
else i:=i+2;
if simp then Simple:=True else Simple:=False;
end;
end;
BEGIN
n:=1;                               {условно для выполнения цикла}
while n mod 2 = 1 do
begin
write('n='); readln (n);
if n mod 2 = 1 then writeln('Число n должно быть четным!')
end;
hypot:=False;
if n=4 then begin                               {проверяем и число 4}
item1:=2;
hypot:=True
end
else  begin                             {n>4}
item1:=3;
while (item1<=n div 2) and not hypot do
if Simple(item1) and Simple(n-item1) then hypot:=True
else item1:=item1+2
end;
if hypot  then
begin
writeln('Для данного n гипотеза справедлива');
writeln('Простыми слагаемыми являются числа ',item1,' и ',n-item1) end
else writeln('Для данного n гипотеза не справедлива');
END.
にんじゃ
ROMA2PVT вне форума Ответить с цитированием
Старый 12.04.2010, 19:29   #5
Alexsey1991
Пользователь
 
Регистрация: 14.12.2009
Сообщений: 32
По умолчанию

Спасибо всем кто помогал!
Alexsey1991 вне форума Ответить с цитированием
Старый 12.04.2010, 19:33   #6
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

Не за что.
にんじゃ
ROMA2PVT вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка на простые числа Lemo Помощь студентам 1 29.09.2009 21:38
2 столбец для того, чтобы автоматически создавались числа, которые позволяли уравнивать числа в 3 столбце ppv Microsoft Office Excel 37 05.08.2009 21:19
Проверка чётности числа Antoha79 Помощь студентам 3 23.05.2009 12:58
проверка числа на дробность _ares_ Общие вопросы C/C++ 2 07.10.2008 10:35
Проверка – является ли раскладка клавиатуры правильной для вводимого текста Xandr Общие вопросы Delphi 7 02.11.2007 09:25