0 / 0 / 0
Регистрация: 04.11.2019
Сообщений: 7

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

04.11.2019, 11:16. Показов 16064. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, помогите решить задачу!
Уже несколько дней не могу придумать решение.

Дано натуральное число n. Среди чисел 1,2...,n найти все те,которые можно представить в виде квадратов двух натуральных чисел. (Определить процедуру,позволяющую распознавать полные квадраты).
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.11.2019, 11:16
Ответы с готовыми решениями:

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

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

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

8
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
04.11.2019, 11:26
Предлагаю написать функцию, которая берёт квадратный корень от числа, округляет до целого и возводит обратно в квадрат. Если результат совпал с исходным числом, то квадрат полный.
0
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
04.11.2019, 11:52
Рыжий Лис, вот так?

Python
1
2
3
4
5
6
7
8
from math import sqrt
n = int(input('Введите n: '))
 
for i in range(1,n+1):
    rei = int(sqrt(i))
    rei = rei ** 2
    if rei == i:
        print(rei)
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
04.11.2019, 11:55
Mirecole,
в виде квадратов двух натуральных чисел.
Это что значит? Сумма, что ли?
0
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
04.11.2019, 12:00
dondublon, я тоже думал сумма, может число составное из 2х чисел?
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
04.11.2019, 12:04
Кстати, да.

Полный квадрат - это
https://www.cyberforum.ru/cgi-bin/latex.cgi?1^2=1<br />
2^2=4<br />
3^2=8<br />
4^2=16.

А вот сумма квадратов:
https://www.cyberforum.ru/cgi-bin/latex.cgi?0^2+1^2=1<br />
1^2+1^2=2<br />
1^2+2^2=5

Добавлено через 1 минуту
Ещё
https://www.cyberforum.ru/cgi-bin/latex.cgi?0^2+2^2=4
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
04.11.2019, 12:04
Рыжий Лис, https://www.cyberforum.ru/cgi-bin/latex.cgi?{3}^{2} = 9
1
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
04.11.2019, 12:13
Лучший ответ Сообщение было отмечено Mirecole как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
def is_(n):
    for i in range(n):
        for j in range(n):
            r = i ** 2 + j ** 2
            if r == n:
                #print(i, j)
                return True
            # ниже небольшая оптимизация
            if r > n:
                break
    return False
 
 
for i in range(1, 100):
    if is_(i):
        print(i)
Добавлено через 3 минуты
Ещё бы вынести строку r = i ** 2 + j ** 2 в отдельную функцию и закешировать...
2
 Аватар для regio1961
601 / 293 / 178
Регистрация: 06.06.2016
Сообщений: 552
04.11.2019, 21:30
В задаче не требуется найти само разложение числа в сумму квадратов.
Нужно лишь определить представимо ли число в виде суммы квадратов.

Целое, большее 1, может быть записано в виде суммы двух
квадратов тогда и только тогда, когда его каноническое разложение
не содержит никакого простого числа вида 4m + 3 в нечетной степени.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from sympy import factorint
    
def is_sum_squares( n ):
    #canon -- словарь, содержащий каноническое разложение n
    canon = factorint( n )
    #print( n, " = ", canon )
    for p, k in canon.items():
        if ( p % 4 == 3 ) and ( k % 2 == 1 ):
            return False
    return True                   
 
N = 100
for n in range( 2, N + 1 ):
    if is_sum_squares( n ):
        print( n )
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.11.2019, 21:30
Помогаю со студенческими работами здесь

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

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

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

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

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


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

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

Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru