Форум программистов, компьютерный форум, киберфорум
Наши страницы
Clojure
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
_sg
4123 / 3870 / 294
Регистрация: 12.05.2012
Сообщений: 2,724
1

Project Euler: Multiples of 3 and 5

23.11.2014, 10:38. Просмотров 1743. Ответов 9
Метки нет (Все метки)

Если выписать все натуральные числа меньше 10, кратные 3 или 5, то получим 3, 5, 6 и 9. Сумма этих чисел - 23. Найдите сумму всех чисел меньше 1000, кратных 3 или 5.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2014, 10:38
Ответы с готовыми решениями:

Project Euler: Summation of primes
Сумма простых чисел меньше 10 - это 2 + 3 + 5 + 7 = 17. Найдите сумму всех простых чисел меньше...

Project Euler - large sum
Найдите первые 10 цифр суммы следующих ста пятидесятизначных чисел: ...

Project Euler: Smallest multiple
Project Euler: Smallest multiple 2520 - самое маленькое число, которое делится без остатка на...

Project Euler: 10001st prime
Выписав первые шесть простых чисел, получим 2, 3, 5, 7, 11 и 13. Очевидно, что 6-ое простое число -...

Project Euler: Number letter counts
Если записать числа от 1 до 5 английскими словами (one, two, three, four, five), то используется 3...

9
Catstail
Модератор
24603 / 12511 / 2284
Регистрация: 12.02.2012
Сообщений: 20,328
23.11.2014, 11:02 2
Lisp
1
2
3
4
5
6
7
8
9
10
(defun sum-35 ()
  (let ((s 0))
    (iter (for i from 3 to 999 by 3) (summing i into s))
    (iter (for i from 5 to 995 by 5) (summing i into s))
    s))
 
==> sum-35
(sum-35)
 
==> 266333
0
_sg
4123 / 3870 / 294
Регистрация: 12.05.2012
Сообщений: 2,724
23.11.2014, 11:03  [ТС] 3
Лучший ответ Сообщение было отмечено Catstail как решение

Решение

Lisp
1
2
3
4
5
6
7
8
9
10
(defun sum-multiples (n a b)
  (cond ((zerop n) 0)
        ((or (zerop (rem n a)) (zerop (rem n b)))
         (+ n (sum-multiples (1- n) a b)))
        ((sum-multiples (1- n) a b))))
 
> (sum-multiples 9 3 5)
23
> (sum-multiples 999 3 5)
233168
2
Catstail
Модератор
24603 / 12511 / 2284
Регистрация: 12.02.2012
Сообщений: 20,328
23.11.2014, 11:42 4
Лучший ответ Сообщение было отмечено _sg как решение

Решение

_sg, у меня, значит, неверно считается... Да, конечно! Кратные и 3 и 5 у меня учитываются дважды!

Добавлено через 7 минут
Вот так правильно:

Lisp
1
2
3
4
5
6
7
8
9
10
11
(defun sum-35 (n)
  (let ((s 0))
    (iter (for i from 3 to n by 3) (summing i into s))
    (iter (for i from 5 to n by 5) (when (not (zerop (rem i 3))) (summing i into s)))
    s))
 
==> sum-35
 
(sum-35 999)
 
==> 233168
1
23.11.2014, 11:42
_sg
4123 / 3870 / 294
Регистрация: 12.05.2012
Сообщений: 2,724
23.11.2014, 11:54  [ТС] 5
Lisp
1
2
3
4
5
6
7
(defun sum-multiples (n a b)
  (loop for e from 1 to n
        when (or (zerop (rem e a)) (zerop (rem e b)))
        sum e))
 
> (sum-multiples 999 3 5)
233168
Добавлено через 49 секунд
Lisp
1
2
3
4
5
6
7
(defun sum-multiples (n a b)
  (loop for e upto n
        when (or (zerop (rem e a)) (zerop (rem e b)))
        sum e))
 
> (sum-multiples 999 3 5)
233168
2
smoke853
504 / 509 / 42
Регистрация: 12.12.2013
Сообщений: 481
23.11.2014, 13:15 6
Clojure:
Lisp
1
2
3
(- (apply + (concat (range 3 1000 3) (range 5 1000 5)))
   (apply + (range 15 1000 15)))
;; => 233168
2
7esoterik7
19 / 3 / 0
Регистрация: 26.11.2018
Сообщений: 75
23.03.2019, 21:43 7
А вот так нельзя было?
Python
1
2
def three_five(n):
    return sum([x for x in range(n) if x % 3 == 0 or x % 5 == 0])
Добавлено через 1 минуту
Ребята, отпишитесь. Посмотрел предыдущие решения. Либо я даун, либо люди ничего не поняли (((
0
korvin_
2706 / 1985 / 354
Регистрация: 28.04.2012
Сообщений: 6,777
23.03.2019, 21:52 8
Цитата Сообщение от 7esoterik7 Посмотреть сообщение
Ребята, отпишитесь. Посмотрел предыдущие решения. Либо я даун, либо люди ничего не поняли (((
Ты — даун. Это раздел по Clojure, а не по Python.

Добавлено через 1 минуту
И то, что ты написал, представлено здесь.
0
7esoterik7
19 / 3 / 0
Регистрация: 26.11.2018
Сообщений: 75
23.03.2019, 21:54 9
korvin_, Сорри. Спасибо за прямоту. Но твоя ссылка ведет сюда же (((
0
korvin_
2706 / 1985 / 354
Регистрация: 28.04.2012
Сообщений: 6,777
23.03.2019, 22:13 10
Цитата Сообщение от 7esoterik7 Посмотреть сообщение
Но твоя ссылка ведет сюда же (((
Да ты что! Ссылка на пост в теме ведёт на пост в теме. Удивительно, да?
0
23.03.2019, 22:13
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.03.2019, 22:13

Project Euler: Power digit sum
(expt 2 15) = 32768, сумма цифр 3 + 2 + 7 + 6 + 8 = 26. Какова сумма цифр числа (expt 2 1000)?

Project Euler: Largest prime factor
Простые делители числа 13195 - это 5, 7, 13 и 29. Каков самый большой делитель числа 600851475143,...

Project Euler: Special Pythagorean triplet
Тройка Пифагора - три натуральных числа a < b < c, для которых выполняется равенство a * a + b * b...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru