Числа, кратные 3 или 5
Если выписать все натуральные числа меньше 10, кратные 3 или 5, то получим 3, 5, 6 и 9. Сумма этих чисел равна 23.
Найдите сумму всех чисел меньше 1000, кратных 3 или 5.
Моё решение (Python) под катом:
i = 1
a = 0
while i < 1000:
if i % 3 == 0 or i % 5 == 0:
a = a + i
i += 1
print(a)
Что тут получилось:
- Задаём переменной i значение 1 и переменной а значение 0.
- Запускаем простенький луп который будет бежать 999 раз. Нас так попросили в условии "меньше 1000".
- А в этом лупе у нас условие. Если число которое в переменной i (оно же и номер лупа по счету от 1 до 1000) делится на 3 или на 5 без остатка, его надо прибавить к тому что уже есть в переменной а.
- Таким образом мы проходим все числа от 1 до 1000 и суммируем все числа которые делятся на 3 и 5.
- Питон выдал 233168.
Я так решил.
Этот комментарий был удален автором.
ОтветитьУдалитьВ коде ошибка, которая делает цикл бесконечным. 6 строку нужно вынести на уровень с if, что бы убрать бесконечный цикл. 7 строку на уровень c while, что бы на экран не выводились ненужные числа.
ОтветитьУдалитьМожно и через For:
ОтветитьУдалитьsum = 0
for x in range(1000):
if x != 0:
if x % 3 == 0 or x % 5 == 0:
sum = sum + x
print(sum)
Можно обойтись и без дополнительной проверки x != 0, если указать в range 1, 1000
Удалитьz = 0
ОтветитьУдалитьfor i in range(1, 1000, 1):
x = i % 3
if x == 0:
z = z + i
else:
x = i % 5
if x == 0:
z = z + i
continue
else:
continue
print(z)
a = list (range(0, 1000, 3))
ОтветитьУдалитьb = list (range(0, 1000, 5))
print (sum(a) + sum(b))
rfe
УдалитьОшибка так как в range(0, 1000) выдает от 1 до 999,а 1000 кратно числу 5
Удалитьa=list(range(0, 1000, 3))
Удалитьb=list(range(0, 1000, 5))
c=list(range(0, 1000, 15))
print(sum(a)+sum(b)-sum(c))
Да, нет ошибки в условиях задачи число меньше 1000
Удалитьa = list (range(0, 1000, 3))
ОтветитьУдалитьb = list (range(0, 1000, 5))
for i in b:
if i in a:
b.remove(i)
print (sum(a + b))
266 333
ОтветитьУдалитьУ меня так же
Удалитьprint(sum([i for i in range(1000) if i % 3 == 0 and i % 5 == 0]))
ОтветитьУдалитьТолько я допустил ошибку. Не and а or.
Удалитьsumma = 0
ОтветитьУдалитьfor number in range(1, 1000):
if number % 3 == 0 or number % 5 == 0:
summa = summa + number
print(summa)
ответ 233168
n = 0
ОтветитьУдалитьa = []
b = []
while n < 1000:
if n % 3 == 0 or n % 5 == 0:
a.append(n)
else:
b.append(n)
n += 1
print(a)
print(sum(a))
print(sum(set(list(range(0, 1000, 3)) + list(range(0, 1000, 5)))))
ОтветитьУдалитьprint(sum([a for a in range(1000) if a % 3 == 0 or a % 5 == 0]))
ОтветитьУдалитьtotal = 0
ОтветитьУдалитьfor i in range(1000):
if not i%3 or not i%5:
total += i
print(total)
Этот комментарий был удален автором.
ОтветитьУдалитьresult = 0
ОтветитьУдалитьfor i in range(1000):
if (i % 3 == 0) or (i % 5 == 0):
result += i
else:
print(result)
s=0
ОтветитьУдалитьfor i in range(1,1000):
if i%3==0 or i%5==0:
s= s+i
print (s)
a = list(range(1, 1000))
ОтветитьУдалитьb = 0
for x in a:
if (x % 3 == 0) or (x % 5 == 0):
b += x
print(b)
s =[]
ОтветитьУдалитьfor a in range(0, 1000):
if a % 3==0 or a % 5 ==0:
s.append(a)
print(sum(s))
a=0
ОтветитьУдалитьfor i in range(1000):
if((i % 3 == 0) or (i % 5 == 0)):
a+=i
print(a)
почему то не проходит проверку на проекте Эйлера , но я считаю это самое удобное решение