Python
Питон. Задача на "шары в разных кучах". Но имхо даже понятие не имею как тут решать. Ибо много условий и проверок
В корзине лежат шары. Если разложить их в кучи по два, останется один. Если разложить в кучи по три, останется один. Если разложить в кучи по четыре, останется один. Если разложить в кучи по пять, останется один. Если разложить в кучи по шесть, останется один. Если разложить в кучи по семь, не будет остатка. Нужно найти минимальное количество шаров, удовлетворяющее условию.
НОК (2, 3, 4, 5, 6) = 60
Следовательно, надо найти минимальное число вида 60 * m + 1, которое делится на 7.
Из условия деления на 7 эти числа должны иметь вид 21 + 70 * n.
60 * m + 1 = 21 + 70 * n
6 * m = 2 + 7 * n
(2 + 7 * n) % 6 = 0
с скобках должно быть чётное число, потому выражение преобразуется в:
(2 + 14 * k) % 6 = 0
и сокращается до:
(1 + 7 * k) % 3 = 0
Весь код:
i = 1
while i % 3: i += 7
print(i * 20 + 1)
Следовательно, надо найти минимальное число вида 60 * m + 1, которое делится на 7.
Из условия деления на 7 эти числа должны иметь вид 21 + 70 * n.
60 * m + 1 = 21 + 70 * n
6 * m = 2 + 7 * n
(2 + 7 * n) % 6 = 0
с скобках должно быть чётное число, потому выражение преобразуется в:
(2 + 14 * k) % 6 = 0
и сокращается до:
(1 + 7 * k) % 3 = 0
Весь код:
i = 1
while i % 3: i += 7
print(i * 20 + 1)
Ишангазы Ережепов
здравствуйте, очень нужна ваша помощь по ускорению работы код (не проходит лимит по времени) https://otvet.mail.ru/question/223449324
Безо всяких размышлений
n=1
while (n*60+1)%7!=0: n+=1
print (n*60+1)
n=1
while (n*60+1)%7!=0: n+=1
print (n*60+1)
Надо найти минимальное число, которое делится и на 2, и на 3, и на 4, и на 5, и на 6, и взять на 1 больше.
60 → 61. Но 61 не делится на 7...
121...
181...
241...
301 / 7 = 43.
Нашлось за нескольк секунд, в уме.
В коде это можно написать так:
nums = [2, 3, 4, 5, 6]
i = 0
while True:
i += 1
found = True
for n in nums:
found = found and i % n == 0
if found: break
n = i
while (n + 1) % 7 != 0: n += i
print( n + 1 ) # 301
60 → 61. Но 61 не делится на 7...
121...
181...
241...
301 / 7 = 43.
Нашлось за нескольк секунд, в уме.
В коде это можно написать так:
nums = [2, 3, 4, 5, 6]
i = 0
while True:
i += 1
found = True
for n in nums:
found = found and i % n == 0
if found: break
n = i
while (n + 1) % 7 != 0: n += i
print( n + 1 ) # 301
x=0
while True:
x=x+1
if x%2==1 and x%3==1 and x%4==1 and
x%5==1 and x%6==1 and x%7==0:
print(x)
quit()
while True:
x=x+1
if x%2==1 and x%3==1 and x%4==1 and
x%5==1 and x%6==1 and x%7==0:
print(x)
quit()
def DelitsyaBezOstatka(x,y):
if 0 == (x % y):
return True
else:
return False
def DelitsyaSOstatkom(x,y,z):
if z != (x % y):
return False
else:
return True
i=7
while (DelitsyaSOstatkom(i,2,1))&(DelitsyaSOstatkom(i,3,1))&(DelitsyaSOstatkom(i,4,1))&(DelitsyaSOstatkom(i,5,1))&(DelitsyaSOstatkom(i,6,1))&(DelitsyaBezOstatka(i,7))==False:
i +=1
print(i)
if 0 == (x % y):
return True
else:
return False
def DelitsyaSOstatkom(x,y,z):
if z != (x % y):
return False
else:
return True
i=7
while (DelitsyaSOstatkom(i,2,1))&(DelitsyaSOstatkom(i,3,1))&(DelitsyaSOstatkom(i,4,1))&(DelitsyaSOstatkom(i,5,1))&(DelitsyaSOstatkom(i,6,1))&(DelitsyaBezOstatka(i,7))==False:
i +=1
print(i)
Похожие вопросы
- Питон задача для решения
- Не могу решать задачи на целочисленную арифметику в питоне.
- Решить две задачи на питоне. Помогите пожалуйста
- Задача по питону для начинающих
- Решение задачи по программированию (желательно питон) Сложность O(квадрат(n))
- нужно написать задачи на питоне
- Задача в питоне!!!!!! Дано целое число n (n находится в диапазоне от 1 до 99), определяющее возраст человека в годах.
- Помогите с 3 задачами на питон 3!!! пожалуйста!!
- Задача "Шашки", питон
- Помогите решить задачу на питон!!