С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/75: Рейтинг темы: голосов - 75, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 20.01.2021
Сообщений: 15

Требуется представить данное число в виде суммы двух натуральных чисел A и B таких, что НОД чисел A и B — максимален

28.01.2021, 23:44. Показов 16634. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Представление чисел
Дано натуральное число N. Требуется представить его в виде суммы двух натуральных чисел A
и B таких, что НОД (наибольший общий делитель) чисел A и B — максимален.
Ограничение по времени выполнения программы - 1 секунда, ограничение по используемой
памяти - 64 мегабайта.
Входные данные
Во входном файле записано натуральное число N (2≤N≤109)

Выходные данные
В выходной файл выведите два искомых числа A и B. Если решений несколько, выведите любое
из них.
Примеры
Входные данные
15
Выходные данные
5 10
Входные данные
16
Выходные данные
8 8
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.01.2021, 23:44
Ответы с готовыми решениями:

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

Дано натуральноечисло. Представить данное число в виде суммы квадратов натуральных чисел
Дано натуральноечисло составить программу которая представляет данное число в виде суммы квадратов натуральных чисел содержащие минимальное...

Выяснить, можно ли представить данное число в виде суммы трех квадратов натуральных чисел
Дано натуральное число n. Можно ли представить его в виде суммы трех квадратов натуральных чисел? Если можно, то указать тройку x, y, z...

11
Эксперт Python
8848 / 4500 / 1864
Регистрация: 27.03.2020
Сообщений: 7,315
29.01.2021, 04:38
Лучший ответ Сообщение было отмечено Ellidan как решение

Решение

Ellidan,
Python
1
2
3
4
5
6
7
n = int(input())
i = 2
if n % i :
    for i in range(3, n + 1, 2) :
        if not n%i:
            break
print((i-1)*(n//i), n//i)
4
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
29.01.2021, 10:08
Gdez, попробуй на этом тесте: 982451653

P. S. Считает дольше минуты.
0
Эксперт Python
8848 / 4500 / 1864
Регистрация: 27.03.2020
Сообщений: 7,315
29.01.2021, 11:40
Arsegg, естественно - простые числа
Была задачка на поиск 1 000 000-го простого числа с лимитом 5 сек. Его значение, если не ошибаюсь - 12 с лишним миллионов
0
29.01.2021, 11:44

Не по теме:

Цитата Сообщение от Gdez Посмотреть сообщение
Была задачка на поиск 1 000 000-го простого числа с лимитом 5 сек. Его значение, если не ошибаюсь - 12 с лишним миллионов
Это ж изи)) Вернул константу - делов-то :D

0
Эксперт Python
8848 / 4500 / 1864
Регистрация: 27.03.2020
Сообщений: 7,315
29.01.2021, 11:58
Arsegg, насчет кода - прав. Есть ошибка - не учитывает ввод простого числа
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
n = int(input())
i = 2
k = 0
if n % i :
    j = 3
    while j*j < n+1 :
        if not n%j:
            k = 1
            i = j
            break
        j += 2
else :
    k = 1
if k :
    print((i-1)*(n//i), n//i)
else :
    print(1, n-1)

Не по теме:

Константу для миллионного простого числа?

0
29.01.2021, 12:07

Не по теме:

Цитата Сообщение от Gdez Посмотреть сообщение
Константу для миллионного простого числа?
Это рофл. Don't take it too seriously...

0
0 / 0 / 0
Регистрация: 16.08.2020
Сообщений: 6
17.07.2022, 08:01
Gdez подскажите как вы поняли, что таким путём перебирая цикл вы не пропустите пару чисел с наибольшим НОД?
Python
1
2
3
for i in range(3, n + 1, 2) :
    if not n%i:
        break
Как доказать, что такой алгоритм корректен?
0
Эксперт Python
8848 / 4500 / 1864
Регистрация: 27.03.2020
Сообщений: 7,315
17.07.2022, 09:14
dredder_gun, алгоритм "раскладывает" число на два множителя -> n = p*k, где p - простое число.
Любое простое число при разложении на два слагаемых получает два взаимнопростых числа (11 -> 1+10; 2+9; 3+8; 4+7; 5+6) a+b.
В результате n = a*k + b*k и gcd (a*k, b*k) == k. Соответственно, чем меньше (a+b), тем больше k.
P.s. Второй код значительно быстрее -> О(sqrt(n)), в отличие от первого -> О(n)
1
0 / 0 / 0
Регистрация: 16.08.2020
Сообщений: 6
17.07.2022, 11:23
Цитата Сообщение от Gdez Посмотреть сообщение
алгоритм "раскладывает" число на два множителя -> n = p*k, где p - простое число.
А можете, пожалуйста, пояснить n = p*k это как в коде представлено? Получается, что k это i и в
Code
1
n % i
мы получаем простое число p?
0
Эксперт Python
8848 / 4500 / 1864
Регистрация: 27.03.2020
Сообщений: 7,315
17.07.2022, 11:31
dredder_gun, p это i, а k=n//i
1
0 / 0 / 0
Регистрация: 16.08.2020
Сообщений: 6
17.07.2022, 14:14
p это i, а k=n//i
А, то есть в цикле
Code
1
for i in range(3, n + 1, 2) :
подразумевается, что i не дойдёт до, нпрмр, числа 9, ведь оно составное?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.07.2022, 14:14
Помогаю со студенческими работами здесь

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

Даны натуральное число n. Среди чисел 1, 2, …, n найти все те, которые можно представить в виде суммы квадратов двух натуральных чисел
Даны натуральное число n. Среди чисел 1, 2, …, n найти все те, которые можно представить в виде суммы квадратов двух натуральных чисел.

Даны натуральное число n. Среди чисел 1, 2, …, n найти все те, которые можно представить в виде суммы квадратов двух натуральных чисел.
Собственно само задание. 5). Даны натуральное число n. Среди чисел 1, 2, …, n найти все те, которые можно представить в виде суммы...

Можно ли представить число в виде суммы квадратов двух натуральных чисел
n - натуральное. Можно ли представить его в виде суммы квадратов двух натуральных чисел? Указать пару натуральных чисел x,y таких, что...

Натуральное число m представить в виде суммы квадратов двух натуральных чисел
1)Натуральное число m представить в виде суммы квадратов двух натуральных чисел. Выдать сообщение, если такое представление невозможно.


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru