На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение



Не зарегистрирован
ссылка на сообщение  Отправлено: 15.12.21 17:42. Заголовок: Задача 25 (4211)


Написал код, но он работает ооочень долго. Сам код работает правильно - проверял. Вопрос только в том, как его ускорить?

PROSTO = []
for i in range(1, 912673, 2):
k = 0
for j in range(2, int(i**0.5)+1):
if i%j==0:
k = 1
break
if k == 0:
PROSTO.append(i)

s = 912673
kn = 0
while kn != 5:
s -= 2
s1 = 0
for i in range (3 , s):
if (s % i == 0) and ((i not in PROSTO) or (i%2==0)):
s1 += i
if s1>s:
break
if s1!=0 and s % s1 == 0:
kn += 1
print (s , s1)

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 3 [только новые]


Администратор




Сообщение: 3095
ссылка на сообщение  Отправлено: 15.12.21 17:43. Заголовок: Оформите, пожалуйста..


Оформите, пожалуйста, программу (см. замечание в желтой рамке вверху).

___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 9
ссылка на сообщение  Отправлено: 16.12.21 11:07. Заголовок: в паскале всё работа..


в паскале всё работает шустро, переходите на него
 
###
uses school;
var (c,n) := (0,912673);
while c < 5 do begin
n -= 2;
var s := n.Divisors[1:^1].where(x-> not x.isprime).Sum;
if (s > 0)and(n mod s = 0)and(n.DivisorsCount > 1) then begin
println(n,s);
c += 1;
end;
end


Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 551
ссылка на сообщение  Отправлено: 16.12.21 16:29. Заголовок: Зря вы решили собира..


Зря вы решили собирать кучу простых чисел в массив
 def divisors(x): 
return {i for d in range(2,int(x**0.5)+1) if x%d==0 for i in (d,x//d)}
def prime(x):
return all(x%i!=0 for i in range(2, int(x**0.5)+1))

for x in range(912671,1,-2):
S = sum(i for i in divisors(x) if not prime(i))
if S>0 and x%S==0:
print(x,S)


Discussio mater veritas est Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 1705
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет