Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 19, 2021 14:55:46

fuyukaidesu
Зарегистрирован: 2021-06-19
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Задание 25 егэ информатика

У меня есть программа которая ищет числа с определенным кол вом делителей. Но она работает только если кол во делителей чётно. Как мне изменить(желательно минимально) программу чтобы она искала числа с нечётным кол вом делителей.

 from math import sqrt
divCount = 2  # нужное количество делителей
for n in range(652938, 1744328+1):
  divs = []
  q = round(sqrt(n))
  if q*q == n:
    divs = [q]
    q -= 1
  for d in range(1,q+1):
    if n % d == 0:
      divs = divs + [d, n//d]
      if len(divs) > divCount: break
  if len(divs) == divCount:
    print( *sorted(divs) )

Отредактировано fuyukaidesu (Июнь 19, 2021 15:00:30)

Прикреплённый файлы:
attachment номер25 делители.py (448 байт)

Офлайн

#2 Июнь 19, 2021 19:48:14

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Задание 25 егэ информатика

 from math import sqrt
divCount = 2  # нужное количество делителей
for n in range(1, 100+1):
  divs = []
  q = round(sqrt(n))
  if q*q == n:
    divs = [q]
    q -= 1
  for d in range(1,q+1):
    if n % d == 0:
      divs = divs + [d, n//d]
      if len(divs) == divCount:
        break
  if len(divs) > divCount:
    print( *sorted(divs) )



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Офлайн

#3 Июнь 19, 2021 22:56:39

fuyukaidesu
Зарегистрирован: 2021-06-19
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Задание 25 егэ информатика

AD0DE412
Извините возможно я некорректно сформулировал свою мысль. Я имел ввиду что если в divCount указать 5 делителей или другое нечётное кол во делителей программа должна их найти. Вы же изменили так что программа выводит числа у которых больше двух делителей так как в divCount указано 2.

Отредактировано fuyukaidesu (Июнь 19, 2021 22:57:03)

Офлайн

#4 Июнь 21, 2021 09:28:43

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Задание 25 егэ информатика

fuyukaidesu
выводит числа у которых больше двух делителей
не она выводит числа (последнее) с нечетным количеством делителей (ну кроме чисел с одним делителем)

поправиим это
 In [5]: from math import sqrt
   ...: divCount = 2  # нужное количество делителей
   ...: for n in range(1, 100+1):
   ...:   divs = []
   ...:   q = round(sqrt(n))
   ...:   if q*q == n:
   ...:     divs = [q]
   ...:     q -= 1
   ...:   for d in range(1,q+1):
   ...:     if n % d == 0:
   ...:       divs = divs + [d, n//d]
   ...:       if len(divs) == divCount:
   ...:         break
   ...:   if len(divs) > divCount or  len(divs) == 1:
   ...:     print(sorted(divs)[-1])
   ...:
   ...:
1
4
9
16
25
36
49
64
81
100

ну и с изменившемеся условиями
 In [8]: from math import sqrt
   ...: divCount = 2  # нужное количество делителей
   ...: num = 5
   ...: for n in range(1, 100+1):
   ...:   divs = []
   ...:   q = round(sqrt(n))
   ...:   if q*q == n:
   ...:     divs = [q]
   ...:     q -= 1
   ...:   for d in range(1,q+1):
   ...:     if n % d == 0:
   ...:       divs = divs + [d, n//d]
   ...:       if len(divs) == divCount:
   ...:         break
   ...:   if len(divs) == num and (len(divs) > divCount or  len(divs) == 1):
   ...:     print(sorted(divs)[-1])
   ...:
   ...:
   ...:
   ...:
   ...:
16
81



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Июнь 21, 2021 09:48:06)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version