Multiples of 3 and 5

오랜만에 퀴즈하나 투척합니다.

프로젝트 오일러라고 들어보셨나요?
프로그래밍 퀴즈를 풀이하는 유명한 곳인데요..
그곳에 있는 첫번째 문제를 이곳 코딩도장에 한번 소개해 볼까 합니다.

http://projecteuler.net/problem=1

[문제]

If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.

Find the sum of all the multiples of 3 or 5 below 1000.

[번역]

10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다.

1000미만의 자연수에서 3,5의 배수의 총합을 구하라.

정답은 위 사이트에서 직접 확인 가능합니다.

multiples
※ 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

344개의 풀이가 있습니다. 33 / 35 Page

(1 to 999).filter(i => i % 3 == 0 || i % 5 == 0)
.foldLeft(0) { (m: Int, n: Int) => println("m: " + m + " n: " + n); m + n }
※ 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
def mul3and5(n):
    return sum(x for x in range(1,n) if x%3==0 or x%5==0)
※ 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
// C++ 나머지 연산을 조금이라도 줄였습니다.

int main()
{
    int nVal    = 0;

    cin >> nVal;

    nVal    -= 1;

    int nSum    = 0;

    int nCheck  = nVal % 10;

    while( nVal > 0 )
    {
        if( nCheck == 0 || nCheck == 5 )
        {
            nSum    += nVal;  
        }
        else if( nVal % 3 == 0 )
        {
            nSum    += nVal;
        }

        --nCheck;

        if( nCheck < 0 )
        {
            nCheck  = 9;
        }

        --nVal;
    }

    cout << nSum;

    return 0;
}
※ 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
clear;clc;
s=0;
for i=0:999
    a=mod(i,3);
    b=mod(i,5);
    if a==0
        s=s+i;
    elseif b==0
        s=s+i;
    end
end
sum=s

ans=233168

※ 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
clear;clc;
s=0;
for i=0:999
    a=mod(i,3);
    b=mod(i,5);
    if or(a==0,b==0)
        s=s+i;
    end
end
sum=s
※ 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

##for getting used to use python

##initialize 
sum = 0
b = []
i=1

#put number on array
while i<1000:
    b.append(i)
    i+=1

#if number is divded by 3 or 5, add it to sum
for i in range(len(b)):
    if(b[i]%3==0 or b[i]%5==0):
        print 'component : ' + str(b[i])
        sum+=b[i]

print 'sum of component is ' + str(sum)
※ 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
#include<cstdio>
int main(){int a=0,i;for(i=3;i<1000;i++)if(i%3==0||i%5==0)a+=i;printf("%d",i);}
※ 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
#include <stdio.h>
int sum_1(int j)
{
    int i;
    int sum = 0;
    for (i = 0; i < 1000; i += j)
    {
        sum += i;
    }
    return sum;
}
int main()
{
    int sum = 0;
    sum = sum_1(3) + sum_1(5) - sum_1(15);
    printf("%d",sum);
}

이런식으로 해서 반복문을 1000번 돈다 -> 약 600번 돌도록 했습니다. 빌드시간이 더 짧을까요..?

※ 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
public class Mo3and5 {
    //10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9 이다.이들의 총합은 23이다. 
    //1000미만의 자연수 3과 5의 배수의 총합을 구하려야 
    public static void main(String args[]){
        int sum=0;
        for(int i=0;i<1000;i++){
            if(i%3==0||i%5==0)
                sum+=i;
        }
        System.out.println(sum);
    }
}
※ 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
sum (filter (\ x -> mod x 3 == 0 || mod x 5 == 0) [1..999])

2017/01/25 11:19

SJ

※ 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

풀이 작성

※ 풀이작성 안내
  • 본문에 코드를 삽입할 경우 에디터 우측 상단의 "코드삽입" 버튼을 이용 해 주세요.
  • 마크다운 문법으로 본문을 작성 해 주세요.
  • 풀이를 읽는 사람들을 위하여 풀이에 대한 설명도 부탁드려요. (아이디어나 사용한 알고리즘 또는 참고한 자료등)
  • 작성한 풀이는 다른 사람(빨간띠 이상)에 의해서 내용이 개선될 수 있습니다.
목록으로
코딩도장

코딩도장은 프로그래밍 문제풀이를 통해서 코딩 실력을 수련(Practice)하는 곳입니다.

multiples x 2
연관 문제
전용준, 2017/02/18 18:50

언어별 풀이 현황
전 체 x 344
clojure x 1
java x 61
기 타 x 62
scala x 5
python x 128
delphi x 2
javascript x 4
perl x 2
cpp x 47
haskell x 4
matlab x 3
go x 3
cs x 9
lisp x 1
objectivec x 2
r x 2
ruby x 4
php x 4