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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2011, 19:53   #1
ALex25153
 
Регистрация: 24.11.2011
Сообщений: 4
Печаль Олимпиадное задание.

Задача 1. Проблема Гольдбаха— 100 баллов
В 1742 году Христиан Гольдбах послал письмо Леонарду Эйлеру, в котором высказал следующее предположение: «Каждое нечётное число большее 5 можно представить в виде суммы трёх простых чисел». Эйлер заинтересовался проблемой и выдвинул более сильную гипотезу: «Каждое чётное число большее двух можно представить в виде суммы двух простых чисел». Это утверждение называется бинарной проблемой Гольдбаха и остается недоказанным до настоящего времени.
Требуется написать программу, производящую согласно утверждению Гольбаха, разложение заданного чётного числа на сумму двух простых чисел. Из всех пар простых чисел, сумма которых равна заданному числу, требуется найти пару, содержащую наименьшее простое число.
Технические требования.
Имя входного файла: INPUT.TXT. Имя выходного файла: OUTPUT.TXT
Формат входных данных:
Первая строка входного файла содержит целое четное число N (4 ≤ N ≤ 100000).
Формат выходных данных:
Единственная строка выходного файла содержит пару простых чисел, сумма которых равна числу N. Первым выводится наименьшее число.
Примеры файлов входных данных: Соответствующие примеры файлов выходных данных:
8
3 5
992
73 919


Кто может подсказать как это решать?
ALex25153 вне форума Ответить с цитированием
Старый 25.11.2011, 20:10   #2
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

ввод из файла сами крутите)
Код:
function isPrime(X: LongInt): boolean; {(c) Serge_Bliznykov}
var i: integer;
Begin
     isPrime:=false;
     if x<2 then Exit;
     if not odd(x) and (x<>2) { проверяем на чётность  }
          then exit;
     i:=3;
     while i <= sqrt(x) do { проверяем только нечётные }
     begin
          if x mod i = 0 then Exit;
          inc(i,2);
     end;
     isPrime:=true;
End;
Var
     C,k:integer;
begin
Readln(c);k:=1;
While (isprime(k)<>isprime(c-k)) do begin
inc(k);
repeat
inc(k);
until isPrime(k);
end;
writeln(k,'+',c-k);
readln;
end.
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума Ответить с цитированием
Старый 25.11.2011, 20:23   #3
ALex25153
 
Регистрация: 24.11.2011
Сообщений: 4
По умолчанию

Это я так понимаю паскаль? Или С++?
ALex25153 вне форума Ответить с цитированием
Старый 25.11.2011, 20:30   #4
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

Цитата:
Это я так понимаю паскаль?
Правильно понимаешь)
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума Ответить с цитированием
Старый 25.11.2011, 20:32   #5
ALex25153
 
Регистрация: 24.11.2011
Сообщений: 4
По умолчанию

Спасибо будем разбираться =)
ALex25153 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
олимпиадное задание Ponkole Помощь студентам 8 15.02.2011 10:19
Олимпиадное программирование VovanZ Свободное общение 4 02.03.2010 13:43
Олимпиадное задание) AleX CODER Общие вопросы Delphi 12 02.12.2008 21:26