1 / 1 / 0
Регистрация: 13.09.2018
Сообщений: 126
1

Определить, можно ли данное число представить в виде суммы двух простых чисел

14.11.2018, 22:53. Показов 3025. Ответов 1
Метки нет (Все метки)

Ваша задача - определить, можно ли представить данное число N в виде суммы двух простых чисел.
Входные данные
В единственной строке записано единственное число N.
Выходные данные
Сумма двух простых чисел, равная N, или -1, если таковой не существует. В сумме первое число не более второго и если существует несколько таких возможных сумм - вывести ту, в которой первое слагаемое наименьшее.
Ограничения
1≤N≤1000000
Примеры
Входные данныеВыходные данные
92 + 7
103 + 7
11-1
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.11.2018, 22:53
Ответы с готовыми решениями:

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

Выяснить, можно ли заданное число представить в виде суммы двух простых чисел
Выяснить, можно ли заданное число представить в виде суммы двух простых чисел(реализовать функцию...

Определить, можно ли представить заданное число в виде суммы четырех простых чисел
Люди,помоги решить задачку: Дано натуральное число n. Можно ли представить его в сумме четырех...

Определить, можно ли число N представить в виде произведения двух простых чисел?
Составить программу для проверки, можно ли заданное натуральное число N представить в виде...

1
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7494 / 4363 / 2774
Регистрация: 22.11.2013
Сообщений: 12,494
Записей в блоге: 1
15.11.2018, 13:00 2
Лучший ответ Сообщение было отмечено vlados124 как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var n, i, t: Longint;
begin
  Read(n);
  if Odd(n) then
    if IsPrime(n-2)
    then WriteLn('2 + ',n-2)
    else WriteLn(-1)
  else if n=4 then WriteLn('2 + 2')
  else begin
    i:=3; t:=n div 2;
    while (i<=t) and not (IsPrime(i) and IsPrime(n-i)) do Inc(i,2);
    if i<=t
    then WriteLn(i,' + ',n-i)
    else WriteLn(-1);
  end;
end.
IsPrime -- проверка на простоту, написать самому или взять готовую на форуме.

Добавлено через 5 минут
Если реализация IsPrime кэширует ранее вычисленные значения или основана на предварительном построении решета Эратосфена до n-2 -- будет хорошая прибавка к скорости.

Добавлено через 4 минуты
Вместо вызовов IsPrime можно сразу построить решето Эратосфена до n-2 и дальше пройти по нему с интервалом.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.11.2018, 13:00
Помогаю со студенческими работами здесь

Определить, можно ли натуральное число N представить в виде произведения двух простых чисел
Всегда выводи одинаковые ответы. можно натуральное число N представить в виде произведения двух...

Определить, можно ли представить число в виде суммы двух квадратов натуральных чисел
Ввести натуральное число n. Можно ли представить его в виде суммы двух квадратов натуральных...

Определить, можно ли представить число в виде суммы двух квадратов натуральных чисел
Дано натуральное число n.Определить,можно ли представить его в виде суммы двух квадратов...

Данное число представить в виде суммы кубов двух натуральных чисел
напишите программу !дано натуральное число в виде суммы кубов двух натуральных чисел!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru