오랜만에 퀴즈하나 투척합니다.
프로젝트 오일러라고 들어보셨나요?
프로그래밍 퀴즈를 풀이하는 유명한 곳인데요..
그곳에 있는 첫번째 문제를 이곳 코딩도장에 한번 소개해 볼까 합니다.
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의 배수의 총합을 구하라.
정답은 위 사이트에서 직접 확인 가능합니다.
2507개의 풀이가 있습니다.
>>> sum(list([x for x in range(1000) if x%3==0 or x%5==0]))
filter, lambda 없이
List comprehension, 매력적이군요.
파이썬 set 라이브러리를 사용해 보았습니다.
set3 = set(range(3, 1000, 3))
set5 = set(range(5, 1000, 5))
print sum(set3 | set5)
참고로 set3 | set5 의 의미는 set3와 set5의 합집합입니다.
java 8 버전입니다.
import java.util.stream.IntStream;
public static void main(String[] args) {
System.out.println(String.format("정답: %d", foo(1000)));
}
private static int foo(int end) {
return IntStream.range(1, end).filter(j -> j%3==0 || j%5==0).sum();
}
정답: 233168
#include <stdio.h>
int main(void)
{
int i = 0, sum = 0;
for (i = 0; i < 1000; i++)
{
if (i % 3 == 0 || i % 5 == 0)
sum += i;
}
printf("총합은 %d 입니다\n", sum);
return 0;
}
C로 작성하였습니다.
sum =0
for num in range (1000):
if num % 3 == 0 or num %5 == 0 :
print num
sum += num
print sum
저도 풀긴했습니다. Python 공부하는 중인데 range 함수가 기억이 안나서 (1:1000 ) 으로 썼다고 에러 나서 다시 찾아 봤네요. 응용님이 올리신 코드 보니 완전 감탄!!
public static int Print(int Max)
{
int sums = 0;
for (int i = 1; i < Max; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
sums += i;
}
}
return sums;
}
233168 계속하려면 아무 키나 누르십시오 . . .
loop 없이...
#include <stdio.h>
#define QZ_SUM_OF_CONTINUOUS_NUM(_from, _to) ((((_from) + (_to)) * (((_to) + 1) - (_from))) >> 1)
unsigned int qz_computeSumOfMultiples(unsigned int _from,
unsigned int _to,
unsigned int _n)
{
unsigned int sum;
unsigned int midNum;
unsigned int count;
unsigned int innerCount;
unsigned int revFrom;
unsigned int revTo;
revFrom = (_from - (_from % _n)) + 1;
revTo = _to - (_to % _n);
sum = QZ_SUM_OF_CONTINUOUS_NUM(revFrom, revTo);
midNum = (revFrom + revTo) >> 1;
count = (((revTo - revFrom) / _n) + 1);
innerCount = (_n - 1);
if((revFrom + revTo) & 0x01) /* odd number */
sum = sum - (midNum * (count * innerCount));
else /* even number */
sum = sum - ((midNum * (count * innerCount)) - (count * (innerCount / 2)));
return sum;
}
unsigned int qz_getAnswerToQ1(void)
{
unsigned int answer;
unsigned int sum3;
unsigned int sum5;
unsigned int sum15;
unsigned int from = 1;
unsigned int to = 999;
sum3 = qz_computeSumOfMultiples(from, to, 3);
sum5 = qz_computeSumOfMultiples(from, to, 5);
sum15 = qz_computeSumOfMultiples(from, to, 15);
answer = sum3 + sum5 - sum15;
return answer;
}
int main(void)
{
printf("Result: %u \n", qz_getAnswerToQ1());
return 0;
}
Sub Main()
Console.WriteLine("Result: " & (From n In Enumerable.Range(1, 999) Where n Mod 3 = 0 Or n Mod 5 = 0 Select n).Sum)
Console.ReadLine()
End Sub
Linq를 이용했습니다.
정답: 233168
#include<stdio.h>
int main(){
int max = 1000;
int i;
int result = 0;
for(i=0; i<max; i++){
if(i%3==0 || i%5==0){
result += i;
printf("%d ", i);
}
}
printf("\n\nresult : %d\n", result);
return 0;
}
C로 작성.
C
#include "stdafx.h"
int main() {
int add = 0;
for (int x = 1; x < 1000; x++)
if (x % 3 == 0 || x % 5 == 0)
add += x;
printf("%d\n", add);
return 0;
}
Java
public class multiple {
public static void main(String args[]) {
int sum = 0;
for (int i = 1; i < 1000; i++) {
if(i%3 == 0 || i%5 == 0)
sum += i;
}
System.out.println(sum);
}
}
Python
print(sum(x for x in range(1,1000) if x%3 == 0 or x%5 == 0))
#include <iostream>
using namespace std;
#define NUM 1000
int main()
{
int result = 0;
for(int i = 0 ; i < NUM ; i++)
{
if(num/3==0 || num/5 ==0)
result += num;
}
cout << result << endl;
return 0;
}
이렇게 하면 되는가 모르겠네요
class One{
public static void main(String[] args){
int n = 10;
if(n >= 1){
int count = multiplesNumbers(n - 1);
System.out.println(count);
}
}
public static int multiplesNumbers(int n){
if(n > 0){
if(n % 3 == 0 || n % 5 == 0){
return n = n + multiplesNumbers(n-1);
}else{
return n = multiplesNumbers(n-1);
}
}
return 0;
}
}
#include <iostream>
using namespace std;
int main() {
int sum = 0;
for(int i=1; i<1000; i++) {
if((i%3==0) || (i%5==0)) sum+=i;
}
cout << sum;
return 0;
}
public class coding003 {
public static void main(String[] args) {
int three=0, five=0, fifteen=0;
three = (new coding003()).Method(3);
five = (new coding003()).Method(5);
fifteen = (new coding003()).Method(15);
System.out.println(three+five-fifteen);
}
int Method(int num) {
int sum=0;
for(int i=1;i<1000;i++) {
if(num*i >= 1000) break;
sum += num*i;
}
return sum;
}
}
print(sum(set(i for i in range(1000) if i % 3 == 0 or i % 5 == 0)))
집합 축약으로 한줄코드를 작성해 보았습니다.
(println (reduce + (for [x (range 1000) :when (or (=(mod x 3) 0) (= (mod x 5) 0))] x)))
clojure 로도 해봤습니다.
list_3 = [x for x in range(0,1000,3)]
list_5 = [x for x in range(0,1000,5)]
list_15 = [x for x in range(0,1000,15)]
answer = sum(list_3) + sum(list_5) - sum(list_15)
#include <stdio.h>
main()
{
int i;
int sum1=0;
int sum2=0;
for(i=1;i<1000;i++){
if(i%3==0){
sum1=sum1+i;
}
else if(i%5==0){
sum2=sum2+i;
}
}
printf("%d",sum1+sum2);
printf("\n");
system("pause");
return 0;
}
233168
def baisu(n):
i=1
kekka=0
while i < n:
if i%3==0:
kekka+=i
elif i%5==0:
kekka+=i
i+=1
return kekka
print(baisu(1000))
1) R 코딩
sum<-0
for(ii in 1:999){
if(ii%%3==0 | ii%%5==0){
sum=sum+ii}}
sum
2)PYTHON 코딩
s1=set(range(0,1000,3))
s2=set(range(0,1000,5))
sum(s1|s2)
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package codingdojang;
// Multiples of 3 and 5
/**
*
* @author dbswl
*/
public class Codingdojang {
public static int sum_(int a, int b){
int i =0;
int sum =0;
for(i =1; i < 1000; i++){
if(i % a == 0 || i % b == 0 ){
sum += i;
}
}
return sum;
}
public static void main(String[] args) {
int s;
s = sum_(3,5);
System.out.println("총합"+ s);
}
}
input_num = 1000
multi_num = []
multi_count = 0
for i in range(1,input_num):
if i % 3 == 0 or i % 5 == 0:
multi_num.append(i)
multi_count += i
print("{}미만의 자연수에서 3과 5의 배수의 합은 {}이다.".format(input_num, multi_count))
result = 0
for i in range(1000):
if i % 3 == 0:
result += i
elif i % 5 == 0:
result += i
else:
pass
print(result)
```{.python} a = int(0) b = int(0) result = int(0)
while 3a < 1000 and 5b < 1000: if 3a//5 == 0: result = result + 3a a += 1
if 5*b < 1000:
result = result + 5*b
b += 1
print(result)
[실패 사례1, Python!]오늘 배운 while과 continue를 사용해서 풀어보려고 했는데, 나뉘어진 값을 담질 못해서 안 되네요. range 이외에 a%3 == 0, a를 담는 방법은 없나요? set1, set2에 a를 답았으면 하는데, 'bool'이 담겨서 'sum'을 할 수 없습니다.
a = 0
while a <= 1000:
if set1 = set (a%3==0)
continue
else:
print(sum(set1))
if set2 = set (a%5==0)
continue
else:
print(sum(set2))
# 두 번째...
a = 0
while a <= 1000:
if ((a%3==0) | (a%5==0)) != 0:
continue
else:
print(sum(a))
# 세 번째...
a = 1
while a <= 1000:
set1 = (a%3==0)|(a%5==0)
if (set1 != 0) :
a = a +1
continue
else:
sum1 = sum(a)
a = a +1
print(sum1)
정수는 반복문에서 사용할 수 없군요.
# 네 번째...성공.
# 1,000미만의 수 | a +=1의 삽입 위치 중요함.
a = 0
sum1 = 0
while a < 1000:
if a%3==0 or a%5==0 :
print(a)
sum1 = sum1+a
a += 1
print(sum1)
# 다섯 번째..성공. [for문]
# range에 1000이 포함되지 않는 것. | sum1을 정의 해두어야 한다는 것.
sum1 = 0
for a in range(1000) :
if a%3==0 | a%5==0 :
print(a)
sum1 +=a
print(sum1)
# 문제에서 홀수만의 수와 그 합. (continue를 꼭 좀 써보고 싶었습니다.)
a = 0
sum1 = 0
while a< 1000:
a +=1
if a%2==0:
continue
if (a%3==0 or a%5==0):
print(a)
sum1 += a
print(sum1)
Haskell 재밌습니다.
#!/usr/bin/env runhaskell
import Data.List(union)
isMultiple :: Int -> Int -> Bool
isMultiple x y = x `mod` y == 0
isMultipleBy3or5 :: Int -> Bool
isMultipleBy3or5 x = isMultiple x 3 || isMultiple x 5
main = print $ [ foldr (\x acc -> if isMultipleBy3or5 x
then x + acc
else acc ) 0 [1..999]
, sum $ filter isMultipleBy3or5 [1..999]
, sum $ [ x | x <- [1..999] , isMultipleBy3or5 x ]
, sum $ [3,6..999] `union` [5,10..999]
]
$ chmod +x haskell.hs
$ ./haskell.hs
[233168,233168,233168,233168]
$
Clojure 코드입니다.
(reduce + (clojure.set/union (set (range 0 1000 3))
(set (range 0 1000 5))))
결과값은 233168
int main( )
{
int c=1, sum=0;
for(c=1;c<1001; c++)
{
if(c%3=0 || c%5=0)
sum+=c;
}
printf("result is %d", sum);
return 0;
}
C임돠 맞을려나?
int _tmain(int argc, _TCHAR* argv[])
{
int nMax = 0;
printf("?");
scanf("%d",&nMax);
nMax--;
int nThree = nMax/3;
int nFive = nMax/5;
int nUnion = nMax/15;
int nThreeSum = 3*(nThree * (nThree+1)/2) ;
int nFiveSum = 5*(nFive * (nFive+1)/2) ;
int nUnionSum = 15*(nUnion * (nUnion+1)/2) ;
printf("%d",nThreeSum + nFiveSum -nUnionSum );
return 0;
}
루비에서도 set으로 >_<
require 'set'
(Set.new((0..999).step(3).to_a) + Set.new((0..999).step(5).to_a)).inject &:+
C# 입니다.
int Test(int target)
{
var sum = 0;
for (int i = 0; i < target; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
sum += i;
}
}
return sum;
}
이미 많은 고수분들이 남겼지만 허접하지만 저도 한줄 풀어 봅니다.^_^ 요즘 재미 붙히고 있는 파이썬입니다.
aset = set()
for d in range(1,1000):
if d % 3 == 0 or d % 5 == 0:
aset.add(d)
print(sum(aset))
lim = 1000
result = 0
for i in range(lim):
if i % 3 == 0 or i % 5 == 0:
result += i
print result
다양한 답들이 있어서 신기하네요 ㅋ
clojure
(let [sum (partial reduce +)
to 1000
x3 (range 0 to 3)
x5 (range 0 to 5)]
(->> (concat x3 x5) set sum))
def multiples(n, limit=1000):
quotinent = (limit-1)//n
return set([(lambda x:x*n)(x) for x in range(1, quotinent)])
sum(multiples(3).union(multiples(5)))
배운지 얼마 안된 파이썬으로 짜봤습니다. 다른 분들 코드를 보니까 아직 갈길이 머네요 ㅠㅠ
# -*- coding: euc-kr -*-
sum = 0
for i in range(1, 1000):
if((i % 3) == 0 or (i % 5) == 0):
sum += i
print(sum)
Java 입니다. 코드가 간단한데 맞는지 모르겠네요
class Multiples
{
public static void main(String[] args)
{
int sum=0;
for ( int i=1 ; i<1000 ; i++ ) {
if( i%3==0 || i%5==0 ) sum+=i;
}
System.out.println(sum);
}
}
sum = 0
for i in range(1,1000):
if i%3==0 or i%5==0:
sum = sum+i
print(sum)
두번째 코드 짜 봤습니다. 나도 모르게 다른 분 걸 참고했네요...혼자 스스로 하려고 했는데..ㅎㅎ
파이썬입니다. 지식이 짧아 전혀 독창적이지 않네요..
sum = 0
for num in range(1,1000):
if num % 3 == 0 or num % 5 == 0:
sum = sum + num
print("result = %d" % sum)
결과 입니다.
result = 233168
def main():
sumResult=0
for i in range(1,1000):
if (i%3==0) | (i%5==0): sumResult+=i
print(sumResult)
main()
저는 역시 파이썬이 좋더군요```{.python}
처음 풀어본 문제입니다.
Python 3.4
set = []
for i in range(1, 1000):
if i % 3 == 0 or i % 5 ==0:
set.append(i)
print(sum(set))
Swift로 풀었습니다.
let maxRange:Int = 1001
var sumResult = 0
for i in 0..maxRange {
if( i % 3 == 0 || i % 5 == 0 ) {
sumResult += i
}
}
println("Sum : \(sumResult)")
/*
* 10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다.
1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
*/
public class a_multiplier {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum =0;
for(int i = 0 ; i < 1000 ; i ++){
if(i % 3 == 0 || i % 5 ==0 )
sum+= i;
}
System.out.println("sum is " + sum);
}
}
자바 코드입니다.
public class test {
public static void main(String[] args) {
int i;
int result = 0;
for (i = 1; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0) {
result += i;
}
}
System.out.print(result);
}
}
저는 풀이를 조금 확장해서, 지정한 수 이하의 범위에서 주어진 임의의 수들에 대해 그 배수들의 합을 구하는 코드를 짜봤습니다.
배수의 합을 구해야 할 대상 인수들을 받으면 먼저 대상 인수간의 배수 관계를 조사해서 다른 수의 배수가 되는 수를 제외시킨 후, 남은 수들에 대해서 배수들을 구합니다. 이 때 시그마 n = n*(n+1)/2이므로 이 공식을 써서 합을 구하는데, 합집합을 구할 때는 포함-배제의 원리를 참고했습니다.
http://ko.wikipedia.org/wiki/포함-배제의_원리
흥이 붙어서 신나게 짠 건 좋은데 다 짜 놓고 보니 잉여스럽게 길어진 것 같습니다. 인수가 많고 범위가 큰 경우라야 비용 대비 효율이 큰 코드가 될 것 같습니다. 일반 int 자료형 사용 시에는 범위를 너무 크게 잡으면 오버플로우가 잘 발생하네요. 그래서 일부는 uint64_t 자료형을 사용했습니다.
XCode 5.1.1, C언어로 작성했습니다.
//
// main.c
// CodingDoJang-350
//
// Created by Chrome-MBPR on 6/28/14.
// Copyright (c) 2014 cr2025x1. All rights reserved.
//
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <inttypes.h>
#include <assert.h>
#include "combination.h"
#define INPUT_BUFFER_LENGTH 100
// 주어진 인수간 배수 관계가 있는지 확인하여 인수 배열 축소. 함수 자체는 배열의 크기를 반환하며 filteredArray에 동적할당된 배열의 포인터를 반환한다.
int checkParameter(unsigned int* parameterArray, unsigned int** filteredArray, unsigned int startIndex, unsigned int endIndex);
unsigned int getArgument(unsigned int* threshold, unsigned int** dataArray);
int main(int argc, const char * argv[]) {
unsigned int threshold = 0;
unsigned int* inputData = NULL;
unsigned int sizeOfDataArray = getArgument(&threshold, &inputData);
unsigned int* multiplier = NULL;
// 주어진 인수간 배수 관계가 있는지 확인하여 인수 배열 축소
unsigned int multiplier_size = checkParameter(inputData, &multiplier, 0, sizeOfDataArray - 1);
uint64_t sum = 0;
int modifier = 1;
// i의 의미 : 조합 배열 생성 시 인수 그룹에서 뽑아낼 인수의 개수
for (unsigned int i = 1; i <= multiplier_size; i++) {
// 조합 배열 생성: 가능한 모든 인수 조합의 경우를 구한다.
unsigned int CombCount = combinationCount(multiplier_size, i);
unsigned int* sampleArray = NULL;
combinationArray(multiplier, &sampleArray, 0, multiplier_size - 1, i);
if (sampleArray == NULL) {
printf("Error occured: calloc() failed.");
return 1;
}
// 홀수개의 인수를 곱한 값의 배수라면 더하고, 그렇지 않다면 뺀다.
if (modifier > 0) {
printf("Adding partial sums...\n");
}
else {
printf("Subtracting partial sums...\n");
}
for (unsigned int j = 0; j < CombCount; j++) {
unsigned int divisor = 1;
for (unsigned int k = 0; k < i; k++) {
// 주어진 인수 조합의 경우에서 조합을 구성하는 인수들을 모두 곱한다.
divisor *= sampleArray[j * i + k];
}
unsigned int count = threshold / divisor;
// Sigma n의 수학 공식 이용.
uint64_t partial_sum = (uint64_t)divisor * count * (count + 1) / 2;
printf("Partial Sum of Multiplier %d = %llu\n", divisor, partial_sum);
// 오버플로우 및 언더플로우 발생 점검
uint64_t old_sum = sum;
sum += modifier * partial_sum;
if (modifier > 0) {
assert(sum >= old_sum);
}
else {
assert(sum <= old_sum);
}
}
// 홀수개의 인수를 곱한 값의 배수라면 더하고, 그렇지 않다면 뺀다.
modifier *= -1;
// combinationArray가 동적할당하여 반환한 배열을 할당 해제한다.
free(sampleArray);
}
printf("Total Sum = %llu\n", sum);
free(multiplier);
free(inputData);
return 0;
}
// 주어진 인수간 배수 관계가 있는지 확인하여 인수 배열 축소. 함수 자체는 배열의 크기를 반환하며 filteredArray에 동적할당된 배열의 포인터를 반환한다.
int checkParameter(unsigned int* parameterArray, unsigned int** filteredArray, unsigned int startIndex, unsigned int endIndex) {
static unsigned int* buffer = NULL;
static unsigned int originalSize;
static unsigned int sizeofUInt = sizeof(unsigned int);
if (endIndex == startIndex) {
*filteredArray = (unsigned int*)calloc(1, sizeofUInt);
if (*filteredArray == NULL) {
return 0;
}
memcpy(*filteredArray, parameterArray, 1 * sizeofUInt);
return 1;
}
// 초기 조건 설정
if (buffer == NULL) {
// 주어진 인수 배열에서 작업할 부분만을 잘라내 동적할당한 버퍼 배열에 넣고 파라미터들을 버퍼 배열에 대응하도록 교체한다.
originalSize = endIndex - startIndex + 1;
buffer = (unsigned int*)calloc(originalSize, sizeofUInt);
if (buffer == NULL) {
return 0;
}
memcpy(buffer, &(parameterArray[startIndex]), originalSize * sizeofUInt);
parameterArray = buffer;
startIndex = 0;
endIndex = endIndex - startIndex;
}
unsigned int i = startIndex + 1;
while (i <= endIndex) {
// 현재 인수 배열의 비교 대상 원소가 주어진 시작 인덱스 지점에 있는 원소의 배수인지 확인.
if (parameterArray[i] % parameterArray[startIndex] == 0) {
// 비교 대상 원소 이후의 모든 원소들을 한 칸씩 끌어당기며, 끝 인덱스 또한 1 끌어당기고, static 변수가 저장하고 있는 배열 총 크기값도 1 내린다.
memcpy(&(parameterArray[i]), &(parameterArray[i + 1]), sizeofUInt * (endIndex - i));
endIndex--;
originalSize--;
// 비교할 다음 원소가 앞으로 당겨졌으므로, 이 경우 i값을 증가시키지 않는다.
}
else {
i++;
}
}
// 주어진 시작 인덱스 지점에 있는 원소 외에 남은 원소가 하나 이하라면, 더 이상 비교할 필요가 없으므로 비교 작업을 종료한다.
if (endIndex - startIndex <= 1) {
// 부득이하게도 함수 내부에서 동적할당하여 반환: 배열의 크기를 작업 수행 이전에는 예측하기 어려움.
*filteredArray = (unsigned int*)calloc(originalSize, sizeofUInt);
memcpy(*filteredArray, parameterArray, originalSize * sizeofUInt);
free(buffer);
buffer = NULL;
}
else {
// 다음 원소를 기준으로 다시 그 이후 배열의 원소들끼리 비교한다.
checkParameter(parameterArray, filteredArray, startIndex + 1, endIndex);
}
return originalSize;
}
unsigned int getArgument(unsigned int* threshold, unsigned int** dataArray) {
int isDone = 0;
int repeat = 0;
unsigned int returnValue = 0;
while (!(isDone)) {
char buffer[INPUT_BUFFER_LENGTH] = { 0 };
unsigned int bufferWrite = 0;
printf("Threshold : ");
fgets(buffer, INPUT_BUFFER_LENGTH, stdin);
// 인수 검사
for (int i = 0; i < INPUT_BUFFER_LENGTH; i++) {
if (buffer[i] >= '0' && buffer[i] <= '9') {
bufferWrite++;
}
else if (buffer[i] == 0 || buffer[i] == '\n') {
if (bufferWrite == 0) {
printf("Input is invalid.\n");
}
break;
}
else {
printf("Input is invalid.\n");
repeat = 1;
break;
}
}
if (bufferWrite == 0) {
repeat = 1;
}
if (repeat) {
repeat = 0;
continue;
}
// 인수 대입
*threshold = 0;
for (int i = 0; i < INPUT_BUFFER_LENGTH; i++) {
bufferWrite--;
*threshold += (buffer[bufferWrite] - '0') * (int)pow(10, i);
if (bufferWrite == 0) {
break;
}
}
char numberBuffer[INPUT_BUFFER_LENGTH] = { 0 };
unsigned int delimiterCount = 0;
bufferWrite = 0;
printf("Input series of numbers : ");
fgets(buffer, INPUT_BUFFER_LENGTH, stdin);
// 입력 인수 검사: 출력 배열의 크기를 결정해야 하므로 바로 자료 처리를 하지 않는다.
for (int i = 0; i < INPUT_BUFFER_LENGTH; i++) {
// 첫 ',' 앞 또는 여러 개의 ',' 사이에 숫자가 없다면 입력 오류
if (buffer[i] == ',') {
if (bufferWrite == 0) {
printf("Input is invalid.\n");
repeat = 1;
break;
}
delimiterCount++;
}
// 문자열의 끝이므로 검사 종료
else if (buffer[i] == 0 || buffer[i] == '\n') {
if (bufferWrite == 0) {
printf("Input is invalid.\n");
repeat = 1;
}
break;
}
// 숫자인 경우 숫자 입력이 있음을 마크해둠
else if ((buffer[i] >= '0' && buffer[i] <= '9')) {
bufferWrite++;
}
// 공백 문자의 경우 무시
else if (buffer[i] == ' ') {
continue;
}
// 위의 모든 조건이 맞지 않다면 에러 처리.
else {
printf("Input is invalid.\n");
repeat = 1;
break;
}
}
if (repeat) {
repeat = 0;
continue;
}
returnValue = delimiterCount + 1;
*dataArray = (unsigned int*)calloc(returnValue, sizeof(unsigned int));
bufferWrite = 0;
unsigned int arrayWrite = 0;
for (int i = 0; i < INPUT_BUFFER_LENGTH; i++) {
// 구분자 ','이 나오면 그 앞에 있는 숫자 문자들을 처리
if (buffer[i] == ',') {
unsigned int loopEnd = bufferWrite;
for (unsigned int j = 0; j < loopEnd; j++) {
bufferWrite--;
(*dataArray)[arrayWrite] += (numberBuffer[bufferWrite] - '0') * (unsigned int)pow(10, j);
}
arrayWrite++;
}
// 문자열의 끝이라면 그 앞에 있는 숫자 문자들을 처리
else if (buffer[i] == 0 || buffer[i] == '\n') {
if (bufferWrite > 0) {
unsigned int loopEnd = bufferWrite;
for (unsigned int j = 0; j < loopEnd; j++) {
bufferWrite--;
(*dataArray)[arrayWrite] += (numberBuffer[bufferWrite] - '0') * (unsigned int)pow(10, j);
}
arrayWrite++;
}
isDone = 1;
break;
}
// 숫자라면 숫자버퍼에 그 숫자 문자를 대입
else if ((buffer[i] >= '0' && buffer[i] <= '9')) {
numberBuffer[bufferWrite] = buffer[i];
bufferWrite++;
}
// 공백은 무시
else if (buffer[i] == ' ') {
continue;
}
}
}
return returnValue;
}
//
// combination.c
// CodingDoJang-350
//
// Created by Chrome-MBPR on 6/28/14.
// Copyright (c) 2014 cr2025x1. All rights reserved.
//
#include <stdio.h>
#include <assert.h>
#include <string.h>
#include <stdlib.h>
#include "combination.h"
// 주어진 배열에서의 주어진 개수만큼 인수를 뽑아 생성할 수 있는 모든 인수의 조합을 담고 있는 배열의 포인터를 지정한 포인터 변수에 반환한다. 함수 자체는 이 배열의 크기를 반환한다.
unsigned int combinationArray(unsigned int* elementArray, unsigned int** sampleArray, unsigned int initIndex, unsigned int endIndex, unsigned int size) {
static int stack_depth = -1;
static unsigned int total_combination_count = 0;
static unsigned int sampleArray1stDimSize;
static unsigned int originalSize;
static unsigned int sampleArraySize;
assert(initIndex <= endIndex);
assert(endIndex - initIndex + 1 >= size);
stack_depth++;
// 초기 조건 설정.
if (stack_depth == 0) {
// 반환할 조합배열을 동적할당으로 생성. 2차원 배열을 써야 하지만, 할당해제나 메모리 관리의 용이함을 위해 1차원 배열로 생성함. 인덱스는 자쳬 계산으로 처리한다.
// 1차원의 크기 = 주어진 개수의 원소로 만들 수 있는 조합의 총 경우의 수, 2차원의 크기 = originalSize
originalSize = size;
sampleArray1stDimSize = combinationCount(endIndex - initIndex + 1, size);
sampleArraySize = sampleArray1stDimSize * size;
*sampleArray = (unsigned int*)calloc(sampleArraySize, sizeof(unsigned int));
if (*sampleArray == NULL) {
return 0;
}
}
// nC0의 경우. 아무 것도 뽑지 않으므로 아무 작업도 하지 않는다.
if (size == 0) {
total_combination_count = 0;
}
else {
for (unsigned int i = initIndex; i <= endIndex - size + 1; i++) {
// 현재 함수의 재귀 호출 깊이와 같은 인덱스의 위치에 들어갈 원소를 골라 넣는다.
(*sampleArray)[total_combination_count * originalSize + stack_depth] = elementArray[i];
// 만일 최고 호출 깊이, 즉 조합이 완성된 경우.
if (size == 1) {
total_combination_count++;
// 조합 배열의 가장 마지막 배열이 아니라면, 다음 배열은 이전 조합으로부터 현재 함수보다 낮은 재귀 호출 깊이를 가진 함수들이 지정한 값을 복사받는다.
if (total_combination_count < sampleArray1stDimSize) {
memcpy(*sampleArray + originalSize * total_combination_count, *sampleArray + originalSize * (total_combination_count - 1), sizeof(unsigned int) * stack_depth);
}
}
else {
// 조합이 완성되지 않았으므로, 다시 재귀 호출을 통해 다음 인덱스의 원소를 결정한다.
combinationArray(elementArray, sampleArray, i + 1, endIndex, size - 1);
}
}
if (stack_depth == 0) {
total_combination_count = 0;
}
}
stack_depth--;
return sampleArraySize;
}
// Combination 값을 구함. "nCr"
unsigned int combinationCount(unsigned int x, unsigned int y) {
unsigned int result = 1;
unsigned int temp = x;
assert(x >= y);
for (unsigned int i = 0; i < y; i++) {
result *= temp;
temp--;
}
for (unsigned int i = y; i > 1; i--) {
result /= i;
}
return result;
}
//
// combination.h
// CodingDoJang-350
//
// Created by Chrome-MBPR on 6/28/14.
// Copyright (c) 2014 cr2025x1. All rights reserved.
//
#ifndef CodingDoJang_350_combination_h
#define CodingDoJang_350_combination_h
// 주어진 배열에서의 주어진 개수만큼 인수를 뽑아 생성할 수 있는 모든 인수의 조합을 담고 있는 배열의 포인터를 지정한 포인터 변수에 반환한다. 함수 자체는 이 배열의 크기를 반환한다.
unsigned int combinationArray(unsigned int* elementArray, unsigned int** sampleArray, unsigned int initIndex, unsigned int endIndex, unsigned int size);
// Combination 값을 구함. "nCr"
unsigned int combinationCount(unsigned int x, unsigned int y);
#endif
// 수행 결과 1
Threshold : 999
Input series of numbers : 3, 5
Adding partial sums...
Partial Sum of Multiplier 3 = 166833
Partial Sum of Multiplier 5 = 99500
Subtracting partial sums...
Partial Sum of Multiplier 15 = 33165
Total Sum = 233168
Program ended with exit code: 0
// 수행 결과 2
Threshold : 1000000
Input series of numbers : 2, 3, 4, 5, 6, 7, 8, 9, 10
Adding partial sums...
Partial Sum of Multiplier 2 = 250000500000
Partial Sum of Multiplier 3 = 166666833333
Partial Sum of Multiplier 5 = 100000500000
Partial Sum of Multiplier 7 = 71428928571
Subtracting partial sums...
Partial Sum of Multiplier 6 = 83333166666
Partial Sum of Multiplier 10 = 50000500000
Partial Sum of Multiplier 14 = 35714214284
Partial Sum of Multiplier 15 = 33333166665
Partial Sum of Multiplier 21 = 23809976190
Partial Sum of Multiplier 35 = 14285785710
Adding partial sums...
Partial Sum of Multiplier 30 = 16666833330
Partial Sum of Multiplier 42 = 11904738090
Partial Sum of Multiplier 70 = 7142642850
Partial Sum of Multiplier 105 = 4761595230
Subtracting partial sums...
Partial Sum of Multiplier 210 = 2380547610
Total Sum = 385715214279
Program ended with exit code: 0
다른 분들의 코드를 참고로 파이썬으로 작성하였습니다.
import unittest
def multiple1():
sum = 0
for i in range(1, 1000):
if i % 3 == 0 or i % 5 == 0:
sum += i
return sum
def multiple2():
a = [x for x in range(1, 1000) if x % 3 == 0 or x % 5 == 0]
return sum(a)
def multiple3():
set3 = set(range(3, 1000, 3))
set5 = set(range(5, 1000, 5))
return sum( set3 | set5 )
class MultipliesTest(unittest.TestCase):
def test_multiple(self):
self.assertEqual(multiple1(), 233168)
self.assertEqual(multiple2(), 233168)
self.assertEqual(multiple3(), 233168)
if __name__ == "__main__":
unittest.main()
result = 0
for i in range(1,1000):
if i % 3 == 0:
result += i
elif i % 5 == 0:
result += i
print result
JAVA
package AlorithmPractice;
public class CopyOfMultipleOf3And5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
long time = System.nanoTime();
int total = 0;
int count=0;
final int three =3;
final int five =5;
final int threve =15;
final int range =1000;
for(int i=0; i*three<range;i++){
total +=i*three;
count++;
}
for(int i=0; i*five<range;i++){
count++;
if((i*five)%15==0)continue;
total +=i*five;
}
System.out.println("result="+total);
time = System.nanoTime()-time;
System.out.printf("Elapsed time: %fs%n", ((double) time / 1000000000.0));
System.out.println("Count="+count);
}
}
output result=233168 Elapsed time: 0.000185s Count=534
굳이 1부터 1000까지 셀필요 없이 3의배수 합 + 5의 배수 합 -15의 배수합 하면 535번만 돌려도 계산이 됩니다.
scala> (1 until 1000).map( x => if (( x%3==0 ) || (x%5==0)) x else 0 ).sum
res5: Int = 233168
스칼라 코드입니다.
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0)
sum += i;
}
System.out.println("sum : " + sum);
}
이 사이트 와서 처음 풀이에 성공했습니다. ㅜㅜ 위에 java8로 구현한걸 보니 코드가 정말 간결해졌네요!
전 파이썬 리스트기능을 사용해서 풀어봤어요.
list3 = list(range(3, 1000, 3))
list5 = list(range(5, 1000, 5))
for i in list3:
if i in list5:
list5.remove(i)
print sum(list3 + list5)
간단하게 짜봤습니다. 아직 파이썬이 익숙하지 않네요.
count=1
sum=0
while count < 1001:
if count%3 == 0 or count%5 ==0:
sum=sum+count
count=count+1
print('Sum :%d' % sum)
def count(a,b,c):
a=int(a)-1
b=int(b)
c=int(c)
d=a//b
e=a//c
f=lllll(b,c)
g=a//f
return int(b*mmmmm(d)+c*mmmmm(e)-f*mmmmm(g))
def mmmmm(k):
return((1+k)*k)/2
def lllll(m,n):
r=0
while(1):
r+=m
if r%n==0:
return r
코드는 좀길지만 연산은 가장짧을거 같네요 루프가 최소공배수구하는데만 들어갔거든요
public class Multiples_of_3_and_5 {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0) {
sum += i;
}
}
System.out.println(sum);
}
}
자바입니다.
#include <iostream>
using namespace std;
#define MAX 1000
int main()
{
int sum = 0;
for (int i = 0; i < MAX; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
sum += i;
}
}
cout << "multiples of 3 and 5 : " << sum << endl;
return 0;
}
c++입니다.
#3_and_5.py
result=0
for num in range(1,1000):
if num%3==0:result+=num
elif num%5==0:result+=num
print result
i = 0
k = 0
while i<1000:
if i%3==0 or i%5==0 : k += i
i+=1
print(k)
파이썬입니다. 아직 변수나 for문을 어떻게 할지 감이 안잡혀서 ㅎ
자바입니다.
public class T {
public static void main(String[] args) {
int n=1000;
int sum=0;
for(int i=0;i<=n;i++){
if(i%3==0||i%5==0){
sum+=i;
}
}
System.out.println("결과 :"+ sum);
}
}
C#으로 작성했습니다. Project Euler에서 풀 때는 Python으로 해봤었는데, 이번 문제는 C#이 coding하기 더 쉬운 듯 싶습니다. 3의 배수이거나 5의 배수일 때 sum에 더했습니다.
public int SumOfMultiples3And5(int n)
{
var sum = 0;
for (int i = 3; i < n; i++)
if (i % 3 == 0 || i % 5 == 0) sum += i;
return sum;
}
using System;
class Program
{
static void Main()
{
int sumOfMultiplesOf3or5 = 0;
for (var i = 1; i < 1000; i++)
{
if (IsMultiplesOf3or5(i))
{
sumOfMultiplesOf3or5 += i;
}
}
Console.WriteLine("sumOfMultiplesOf3or5 = " + sumOfMultiplesOf3or5);
}
static bool IsMultiplesOf3or5(int number)
{
if ((number % 3 == 0) || (number % 5 == 0))
{
return true;
}
return false;
}
}
def project():
sum = 0
for i in range(1000):
if i%3 == 0 or i%5 == 0:
sum += i
return sum
print project()
파이썬을 공부해보려고 파이썬으로 해봤는데 C스타일처럼 한것 같네요
#include <stdio.h>
int main() {
int nResult = 0;
for(int i = 1; i < 1000; i++) {
if(i % 3 == 0 || i % 5 == 0)
nResult += i;
}
printf("%d\n", nResult);
return 0;
}
이렇게 하면 되겠죠~?
MAX=1000
a3=set()
b5=set()
for i in range(1,MAX/3+1):
a3.add(i*3)
for i in range(1,MAX/5+1):
b5.add(i*5)
print sum(a3)+sum(b5)-sum(a3.intersection(b5))
자바로 풀어봤습니다.
public class Number02 {
public static void main(String[] args) {
int num, sum = 0;
for(num = 1; num < 1000; num++){
if(num % 3 == 0)
sum += num;
else if(num % 15 != 0){
if(num % 5 == 0)
sum += num;
}
}
System.out.printf("3과 5의 배수의 합: %d\n", sum); // 결과는 233168
}
}
JAVA
public static void main(String args[]){
int sum = 0;
for(int i = 1; i < 1000; i++)
if(i%3 == 0 || i%5 ==0) // 3의 배수 or 5의배수만 sum에 더한다
sum += i;
System.out.println("3,5의 배수의 총합 : "+ sum);
}
package Coding;
public class coding1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int i =1000;
int k=0;
for(int j=0;j<i;j++){
if(0 == j%3 || 0 == j%5){
k+=j;
}
}
System.out.println(k);
}
}
초보 입니다. C로 구현하였습니다.
#include <stdio.h>
#define MAX 1000
int main( void )
{
int i, sum = 0;
for( i = 0; i < MAX; i++ )
{
if( (i % 3 == 0) || (i % 5 == 0) )
sum += i;
}
printf("%d미만의 자연수 중 3, 5의 배수의 총 합 : %d\n", MAX, sum);
return 0;
}
출력 : 1000미만의 자연수 중 3, 5의 배수의 총 합 : 233168
#include <stdio.h>
int main(int argc, const char * argv[]) {
int sum = 0;
for(int i = 1; i < 1000; i++){
if(i%3 == 0 || i%5 ==0) {
sum += i;
}
}
printf("%d \n", sum);
return 0;
}
c=0
for i in range(0,1000,3):
c+=i
for j in range(0,1000,5):
c+=j
for k in range(0,1000,15):
c-=k
print c
if문 없이 for문만으로 해봤습니다.. 뇌가 단순해서 파이썬
n=1000
def core(n):
Nby3=int(n/3)
Nby5=int(n/5)
Nby15=int(n/15)
result=((Nby3**2+Nby3)*3+(Nby5**2+Nby5)*5-(Nby15**2+Nby15)*15)/2
return result
print(core(n))
python3.4 기준입니다. n(n+1)/2 가 수열의 합을 나타내는 점에 착안했습니다.
php
<?php
$number_one = 3;
$number_two = 5;
$num = 1000;
$multiples_of_numbers = array();
for ($index =1; $index < $num; $index++) {
if ($index % $number_one == 0 || $index % $number_two == 0) {
array_push($multiples_of_numbers, $index);
}
}
$sum_of_multiplies = array_sum($multiples_of_numbers);
print "1000미만의 자연수에서 3,5의 배수의 총합은 {$sum_of_multiplies}입니다.";
?>
def sum(m):
nSum = 0
for i in range(1, m):
if (i % 3) == 0:
nSum += i
elif (i % 5) == 0:
nSum += i
print("%d" %nSum)
sum(1000)
end = int(input("마지막 숫자를 입력하세요\n"))
sum = 0
for i in range(1, end):
if i%3 == 0 or i%5 == 0:
sum += i
print(sum)
import java.lang.reflect.Array;
public class MultiplesMain {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(getSumOfMultiples(new int[] { 3, 5 }, 1, 999));
}
private static long getSumOfMultiples(int[] is, int from, int to) {
// TODO Auto-generated method stub
long sum = 0;
for (int i = from; i <= to; i++) {
if (checkMultiples(is, i)) {
sum = sum + i;
}
}
return sum;
}
private static boolean checkMultiples(int[] is, int chkNum) {
// TODO Auto-generated method stub
for (int i = 0; i < is.length; i++) {
if ((chkNum % is[i] == 0) || (chkNum % is[i] == 0)) {
return true;
}
}
return false;
}
}
for I := 1 to 1000 - 1 do
begin
if i < 3 then Continue;
if i mod 3 = 0 then SUM := SUM + i
else if i mod 5 = 0 then SUM := SUM + i;
end;
Writeln('1000 미만의 자연수에서3과 5의 배수 합 = ' + IntToStr(SUM));
3의 배수의 합 + 5의 배수의 합 - 15의 배수의 합으로 계산했습니다.
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
int sum_multiple_n(int n, int max)
{
int p = (max - 1) / n;
int sum = (int)((long)n * (p * (p + 1) / 2));
return sum;
}
int main()
{
int N = 1000;
printf("result: %d\n", sum_multiple_n(3, N) + sum_multiple_n(5, N) - sum_multiple_n(15, N));
return 0;
}
#include <iostream>
using namespace std;
void main() {
int num = 1000;
int sum = 0;
for (int i=num-1; i != 0; i--) {
if (i % 3 == 0 || i % 5 == 0)
sum += i;
}
cout << sum << endl;
}
0 * n 은 항상 0 이라 num % 3 == 0 || num % 5 == 0는 num % 3 * num % 5 == 0 로 줄일 수 있습니다.
1000.times.select {|i| (i % 3 * i % 5).zero? }.inject(&:+)
자바로 풀어보았습니다
public class Multiples3and5 {
public static void main(String[] args){
int sum=0;
int count=0;
for(int n = 1;n<1001;n++){
count++;
if(n % 3==0||n%5==0){
sum += n;
}
if(count==1000){
System.out.println("답:"+ sum);
}
}
}
}
private static int MAX_NUMBER = 1000;
static void Main(string[] args)
{
Console.WriteLine(String.Format("답: {0}", foo(MAX_NUMBER)));
}
private static int foo(int max)
{
int sum = 0;
for (int i = 0; i < max; i++)
{
sum += (i % 3 == 0 || i % 5 == 0) ? i : 0;
}
return sum;
}
처음 도전해봅니다^^ C#으로 작성했습니다.
C++
원문 사이트의 solution pdf파일에 설명된 O(1) time complexity solution 대로 구현 (time complexity가 O(n)인 for loop 사용 안하므로 수의 범위와 상관없이 항상 동일한 응답시간).
수의 범위 1 ~ n에 x의 배수의 갯수 m은 m = n/x 만큼 있음
x의 모든 배수의 합을 sumOfMultOfX 라 할 때
sumOfMultOfX = x + 2*x + ... m*x
다시 표현하면
sumOfMultOfX = x * (1 + 2 + ... + m)
그런데 1 ~ m 까지의 합은 1/2 * m * (m+1) 이므로
sumOfMultOfX = x * m * (m+1) / 2
3의 배수와 5의 배수를 위와 같이 구하면 15의 배수가 중복되므로
최종 합 = 3의배수의합 + 5의배수의합 - 15의배수의합
#include <iostream>
using namespace std;
int sumOfMultOf(int x, int n)
{
int m = n / x;
return x * m * (m+1) / 2;
}
int main(void)
{
int n = 999; // below 1000
int total = sumOfMultOf(3, n) + sumOfMultOf(5, n) - sumOfMultOf(15, n);
cout << total;
return 0;
}
sub i{$a=int($_[0]/$_[1]);return $a*($a+1)*$_[1]/2}print i(999,3)+i(999,5)-i(999,15)
below 1000 이라서 최대값 1000 하면 안되죠.
#include <iostream>
int main(){
int num = 0;
int sum = 0;
while( num++ < 1000 ) {
if( num % 3 == 0 || num % 5 == 0 ) {
sum += num;
}
}
std::cout<< "total : " << sum << std::endl;
}
기교없는 펄입니다. 공부중.
my $sum = 0;
for(1..999) {
if ($_ % 3 == 0 or $_ % 5 == 0) {
$sum += $_;
}
}
print $sum;
swift로 풀어 보았습니다.
import UIKit
var sum=0
for num in Range(1...999)
{
if num%3==0 || num%5==0{
sum += num
}
}
print(sum)
i = 0
total = 0
while i < 1000:
if not (i%3) or not (i%5):
total += i
i+=1
print("result is %d" % total)
막 입문해서 생각나는대로 해봤어요. range랑 sum이랑 썼으면 정말 간단했을지도 ㅋㅋ
sum=0
for i in range(1000):
if i%3==0 or i%5==0:
#print i
sum+=i
print sum
아직은 파이썬에서 사용할 줄 아는게 간단한 것 밖에 없네요.
--java 버전입니다. 그냥 쌩으로 ^^--
int total = 0;
for (int i = 0; i < 1000; i++) { if(i%3==0 || i%5==0) total = total + i; }
--python 버전입니다.--
print sum(filter(lambda num:num%3==0 or num%5==0, range(1000)))
파이썬 입니다.
list = set([])
for x in range(0, 1000):
if x % 3 == 0:
list.add(x)
elif x % 5 == 0:
list.add(x)
print(sum(list))
파이썬 3.4 입니다.
#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.
#
#Multiples_of_3_and_5.py
def mul(var):
cnt = 1
max = 1000
var_mul = [var]
while(1):
cnt = cnt + 1
tmp = var * cnt
if tmp >= max: break
var_mul.append(tmp)
return var_mul
def sum(List):
result = 0
for i in List:
result = result+i
return result
a=3
b=5
c=a*b
aList = mul(a)
bList = mul(b)
cList = mul(c)
x = sum(bList) + sum(aList) - sum(cList)
print(x)
오늘 시작한 python.. 허접하네요 ㅎㅎ
l1, l2 = [], []
for i in range( 1, 100 ):
if i % 3 == 0: l1.append(i)
elif i % 5 == 0: l2.append(i)
print( sum( i for i in list( set(l1) | set(l2) ) ) )
#!/usr/bin/python
# -*- coding: euc-kr -*-
# -*- coding: utf-8 -*-
# -*- coding: ko_KR.eucKR -*-
def main():
result = 0
for i in range(1,1001):
if(i % 3 == 0 or i % 5 == 0):
result = result + i
print result
if __name__ == "__main__":
main()
swift입니다.
import UIKit
var sum = 0; var num=0; for (num = 0;num<1000;++num){ if num % 3 == 0 || num % 5 == 0 { sum += num } }
println(sum)
int d(int a)
{
a-=1;
return (((a/3)*(a-(a%3)+3))/2)+(((a/5)*(a-(a%5)+5))/2)-(((a/15)*(a-(a%15)+15))/2);
}
main()
{
printf("%d",d(1000));
}
3의 배수 + 5의 배수 - 15의 배수로 그냥...
다른분들 해법들을 보면서 느낀거지만 얼마나 깔끔하게 짜냐 같네요 ㅠㅠ
하다보니 자바스크립트 oneliner가 됐네요.
Array.apply(null, Array(999)).map(function (_,i) {return i+1;}).filter(function (n) {return n%3 === 0 || n%5 === 0;}).reduce(function(a,b) {return a+b}, 0);
3과 5로 나누어서 나머지가 0인것을 찾아서 더했습니다.
count=0
for i in range(1000):
m=i%3
n=i%5
if m == 0:
count=count + i
elif n == 0:
count=count + i
else :
print "." ,
print count
초보라 이해 바래요. 일단 다른 분꺼 참조도 했습니다.
def mul_to_sum (target, each1, each2):
sum = 0
for num in range(target):
if (num % each1 == 0):
print ("Number %d is multi of %d" % (num, each1))
sum += num
elif (num % each2 ==0):
print ("Number %d is multi of %d" % (num, each2))
sum += num
else:
print("This %d is not apply" % num)
print (sum)
Python
limit = 1000
x = [n for n in xrange(limit) if n % 3== 0 or n % 5== 0]
# 리스트 합계 더하기
print(sum(x))
public class MultiplesOf {
public static int multiple(int a, int b, int n){
int aSum = 0;
int bSum = 0;
int abSum = 0;
for(int i = 0; i < n; i++){
if(i%a == 0)
aSum += i;
else if(i%b == 0)
bSum += i;
else if(i%(a*b) == 0)
abSum += i;
}
return aSum + bSum - abSum;
}
public static void main(String[] args) {
System.out.println(multiple(3,5,100));
}
중복값을 제거하고, 함수로 만들어 보았습니다.
15 + 30 + ... => 15( 1+2+ .. M) => 15*M(M+1)/2
1000/3 => 999 => 3* 333 (N=333)
공식화해서 풀었습니다.
long Sum3and5Multiples( int val ){
int N = (val-1)/3;
int K = (val-1)/5;
int M = (val-1)/15;
return (3*N*(N+1)/2 + 5*K*(K+1)/2 - 15*M*(M+1)/2);
}
package multiples_of_3_and_5;
public class addmultiples {
public static void main(String[] args)
{
int add = 0;
for(int i=1; i<1000; i++){
//천까지 반복하면서 3이나 5로 나누어 떨어지는지 체크하여 더함
if( i%3 == 0 || i%5 == 0){
add = add + i;
}
}
System.out.println(add);
}
}
반복문을 수행하면서 3 또는 5 의 배수를 변수에 더해서 결과를 반환합니다.
package coding.lv1;
import static org.junit.Assert.*;
import java.util.Arrays;
import org.junit.Test;
public class SumOfMultiplesTest {
/*
* 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.
*/
@Test
public void itShouldSumOfMutiples() {
SumOfMultiples sum = new SumOfMultiples(3,5);
assertEquals(0, sum.getSumForRange(1,3));
assertEquals(3+5, sum.getSumForRange(1,6));
assertEquals(3+5+6+9, sum.getSumForRange(1,10));
assertEquals(3+6+9+12 + 5+10+15, sum.getSumForRange(1,16));
System.out.println("Sum Of Mutiples : " + sum.getSumForRange(1, 1000));
}
public class SumOfMultiples {
private int numbers[];
public SumOfMultiples(int...nums) {
numbers = new int[nums.length];
System.arraycopy(nums, 0, numbers, 0, numbers.length);
}
public int getSumForRange(int start, int end) {
int sum = 0;
for (int i = start; i < end; i++) {
if (isMultiple(i)) {
sum += i;
}
}
return sum;
}
private boolean isMultiple(int multiple) {
for (int i : numbers) {
if (multiple % i == 0) {
return true;
}
}
return false;
}
}
}
문제보면서 그냥 디버깅창에 바로 하고싶어서 자바스크립트로 하였습니다 다른언어를 해도 같은 문법으로 될터인데 각 언어의 라이브러리를 사용하면 다른 형태도 가느하겠죠 : )
function calculate(max) {
var sum = 0;
for(var i =0; i<max;i++) {
if(i % 3 ==0 | i % 5 == 0) {
sum += i;
}
}
return sum;
}
swift 입니다.
import UIKit
var sum = 0
for n in Range(0...999){
if n % 3 == 0 || n % 5 == 0 {
sum += n
}
}
print(sum)
Python 3.4.3
def sum_three_five(less__than_n):
q, r = divmod(less__than_n, 15)
total_sum = int(q * ( 15 + 105 * q) / 2)
offset = 15 * q
for j in range(3, r):
if j in [3, 5, 6, 9, 10, 12]:
total_sum = total_sum + j + offset
return total_sum
Clojure
(apply + (for [i (iterate inc 1)
:when (or (zero? (mod i 3)) (zero? (mod i 5)))
:while (< i 1000)] i))
public static void main(String[] args) {
int sum1 = 0;
int sum2=0;
int sum3=0;
int result =0;
for(int i =1 ;i <1000 ; i++){
if(i%3==0)sum1+=i ;
else if(i%5==0)sum2+=i ;
else if(i%15==0)sum3+=i;
}
result= sum1+sum2-sum3 ;
System.out.println("결과 값 : "+result);
}
너무 수학문제처럼 풀었나요 ㅋㅋ 답은 234168나오는데 맞는지 모르겠어요 ㅎㅎ
#350.py
print sum(range(334))*3+sum(range(201))*5-sum(range(67))*15
set i 0
for {set x 0} {$x <= 999} {incr x} {
if {[set b3 [ expr $x%3 ]] == 0 || [set b5 [ expr $x%5 ]] == 0 } {
lappend i $x
}
}
set sum [ expr [ join $i "+" ]]
Tcl/tk 입니다.
C로 풀었습니다.
#define RANGE 1000
int main()
{
int i, sum=0;
for(i=0;i<RANGE; i++){
if(i%3==0 || i%5==0)
sum+=i;
}
printf("%d\n", sum);
return 0;
}
#include <stdio.h>
int main(){
int i, sum = 0;
for(i = 1; i < 1000; i++){
if(i % 3 == 0 || i % 5 == 0 || i % 15 == 0){
sum+=i;
}
}
printf("%d", sum);
}
간단하게 짜봤습니다..
#include <iostream>
using namespace std;
int main()
{
int number= 1000;
int a=3, b=5;
int result=0;
for (int i = 0; i < number; i++)
{
if ((i % a) == 0 || (i % b)==0 )
{
cout << i <<"is Catching!"<<endl;
result += i;
}
}
cout << endl;
cout << endl;
cout << "result :" << result << endl;
return 0;
}
#include<stdio.h>
int main()
{
int sum = 0;
int sum3 = 0;
int sum5 = 0;
int sum35 = 0;
int i;
for( i = 0; i < 1000; i++) {
if(i%3 == 0)
sum3 = sum3 + i;
}
for( i = 0; i < 1000; i++) {
if(i%5 == 0)
sum5 = sum5 + i;
}
for( i = 0; i < 1000; i++) {
if(i%15 == 0)
sum35 =sum35 + i;
}
sum = sum3 + sum5 - sum35;
printf("합: %d\n" , sum);
return0;
}
#include <stdio.h>
int main() {
int a;
int b=0;
for(a=1;a<1000;a++){
if(a%3==0 || a%5==0){
b = a+b;
}
}
printf("%d", b);
}
public class dojo1
{
public static void main(String[] args)
{
int total = 0;
//add multiples of 3
total = mul(3);
//add multiples of 5
total += mul(5);
//subtract multiples of 15
total -= mul(15);
System.out.println("The result is : " + total);
}
public static int mul(int a)
{
int count = 0;
int num1 = 0 ;
for (int i = 0 ; i*a < 1000 ; i++){
count +=i*a;
}
return count;
}
}
#include<stdio.h>
int main(){
int sum=0;
for (int i=0;i<1000;i++){
if(i%3==0||i%5==0){
sum+=i;
}
}
printf("%d", sum);
}
static void Main(string[])
{
Console.WriteLine(Enumerable.Range(0, 1000).Where(i => i % 3 == 0 | i % 5 == 0).Sum());
}
반복문으로 1000까지 범위를 잡고 3으로 나눳을경우 0인경우와 5로 나눳을경우 0이나오는 숫자를 전부 더하고 3과 5의 공배수인 15로 나눳을경우 0이나오는경우의 숫자를 뺀값을 출력
package dojavn;
public class dsa {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum=0;
for(int i=1;i<1000;i++)
{
if(i%3==0){
sum+=i;
}
if(i%5==0){
sum+=i;
}
if(i%15==0){
sum-=i;
}
}
System.out.println("합:"+sum);
}
}
답:233168
package problem;
public class Cd1 {//1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
int sum=0;
public void number(){
for (int i = 0; i < 1000; i++) {
if(i%3==0||i%5==0){
sum+=i;
}
}
System.out.println(sum);
}
public static void main(String[] args) {
Cd1 cd= new Cd1();
cd.number();
}
}
3과 5로 나눈 나머지가 0인 수를 더해서 메소드 호출했어요
def quiz():
num = []
for i in range(1000):
if i % 3 == 0 or i % 5 == 0:
num.append(i)
return sum(num)
print(quiz())
public class Multi {
public static void main(String[] args) {
int sum = 0;
for(int i = 3; i < 1000; i += 3) {
sum += i;
}
for(int i = 5; i < 1000; i += 5) {
if(i % 3 != 0) {
sum += i;
}
}
System.out.println(sum);
}
}
public void test() {
int sum = 0;
for (int i = 0; i < 1000; i++) {
if(i%3 == 0 || i%5 == 0){
sum += i;
}
}
System.out.println(sum);
}
public static void main(String[] args) {
int result = 0;
for (int i = 0, n = 1000; i < n; i++) {
if (i % 3 == 0 || i % 5 == 0) {
result += i;
}
}
System.out.println(result);
}
어려운 것 같은 문제는 코딩이 진짜 간결하게 되어있고 막상 이런 문제에는 코딩이 매우 길어서 당황스럽네요 ㅜㅜ C언어로 작성했습니다.
#include <stdio.h>
int main()
{
int sum = 0;
int i = 0;
while (i < 1000)
{
if (i % 3 == 0 || i % 5 == 0)
{
sum = sum + i;
}
i++;
}
printf("결과값 : %d\n", sum);
return 0;
}
int Msum(int m,int end)
{
int n = (end-1) / m;
return m * n*(n + 1) / 2;
}
void exce5()
{
printf("%d", Msum(3, 1000) + Msum(5, 1000) - Msum(15, 1000));
}
왠지 딱 봐도 루프 쓰라는 문제 같아 보여서 청개구리마냥(?) 루프 안쓰고 만들어 봤습니다. 1이상x미만의 y의 배수의 합을 구하는 함수를 만들어서 3,5를 더한다음에 15를 뺐습니다.
파이썬
#-*-coding: utf-8 -*-
sum = 0
sum2 = 0
for i in range(0,1000):
if i % 3 == 0:
sum += i
if i % 5 == 0:
sum2 += i
print "1000이하에서 3의 배수와 5의 배수의 합계"
print sum + sum2
# -*- coding: utf-8 -*-
def baesu(x,y):
i = 0
u = 0
result = 0
result_two = 0
while x+i < 1000:
print x + i
i = i + x
result = result + i
while y+u < 1000:
print y + u
u = u + y
result_two = result_two + u
print '첫번째 인자의 합',result
print '두번째 인자의 합',result_two
print '총합은', result + result_two
baesu(3,5)
입력받은 인자 2개의 배수들의 1000미만의 수의 합을 구하는 함수입니다.
summf3 = 0; summf5 = 0; summf15 = 0
def tresmult (num):
mult3 = []
cnt3 = 0
ctr3 = 0
summ3 = 0
try:
if int(num) % 3 == 0:
for i in range (0, int(int(num)/3)):
ctr3 = ctr3 + 1
cnt3 = cnt3 + 3
summ3 = summ3 + cnt3
mult3.append(cnt3)
elif int(num) %3 != 0:
for i in range (0, int(int(num)/3)):
ctr3 = ctr3 + 1
cnt3 = cnt3 + 3
summ3 = summ3 + cnt3
mult3.append(cnt3)
else:
print("Error on Number!")
num = input()
tresmult(num)
except type(num) is str:
print("Type Error!")
finally:
print("The number of all multiples of 3 under " + str(num) + " is " + str(ctr3) + ",")
print("and the list of it is: ")
print(mult3)
print(", and the summary of these is: " + str(summ3))
global summf3
summf3 = summ3
return summf3
def quintmult (num):
mult5 = []
cnt5 = 0
ctr5 = 0
summ5 = 0
try:
if int(num) % 5 == 0:
for i in range (0, int(int(num)/5)):
ctr5 = ctr5 + 1
cnt5 = cnt5 + 5
summ5 = summ5 + cnt5
mult5.append(cnt5)
elif int(num) % 5 != 0:
for i in range (0, int(int(num)/5)):
ctr5 = ctr5 + 1
cnt5 = cnt5 + 5
summ5 = summ5 + cnt5
mult5.append(cnt5)
else:
print("Error on Number!")
num = input()
quintmult(num)
except type(num) is str:
print("Type Error!")
finally:
print("The number of all multiples of 5 under " + str(num) + " is " + str(ctr5) + ",")
print("and the list of it is: ")
print(mult5)
print(", and the summary of these is: " + str(summ5))
global summf5
summf5 = summ5
return summf5
def decqunmult (num):
mult15 = []
cnt15 = 0
ctr15 = 0
summ15 = 0
try:
if int(num) % 15 == 0:
for i in range (0, int(int(num)/15)):
ctr15 = ctr15 + 1
cnt15 = cnt15 + 15
summ15 = summ15 + cnt15
mult15.append(cnt15)
elif int(num) % 15 != 0:
for i in range (0, int(int(num)/15)):
ctr15 = ctr15 + 1
cnt15 = cnt15 + 15
summ15 = summ15 + cnt15
mult15.append(cnt15)
else:
print("Error on Number!")
num = input()
decqunmult(num)
except type(num) is str:
print("Type Error!")
finally:
print("The number of all multiples of 5 under " + str(num) + " is " + str(ctr15) + ",")
print("and the list of it is: ")
print(mult15)
print(", and the summary of these is: " + str(summ15))
global summf15
summf15 = summ15
return summf15
"""---------------------"""
num = 1000
tresmult(num)
quintmult(num)
decqunmult(num)
print ("The answer is: ")
print(summf3 + summf5 - summf15)
어마어마하게 번거로워진 코드...ㅠㅠ 답은 234168이었습니다.
public static int func(int limit){
int num = 1;
int sum = 0;
while(num<limit){
if(num%3 == 0)
sum+=num;
else if(num%5 == 0)
sum+=num;
num++;
}
return sum;
}
else if 보다는 || 기호가 깔끔하겠네요. 배우고감니당
c++
#include <stdio.h>
int main(void)//https://projecteuler.net/problem=1
{
int iNum=1000, iOutput = 0, iFor;
for (iFor = 1; iFor < iNum; iFor++)
{
if (iFor % 3 == 0 || iFor % 5 == 0)
{
iOutput += iFor;
}
}
printf("%d", iOutput);
}
# -*- coding: cp949 -*-
num=input("숫자를 입력해 주세요 : ")
if num<3:
print("3보다 큰 숫자를 입력해 주세요")
exit(0)
total=0
for x in range(0,num):
if x%3==0:
total+=x
elif x%5==0:
total+=x
print("[[ %d ]]") % total
#include<iostream>
using namespace std;
int multiple(int n){
int m,sum=0;
for(int i=1;i<1000;i++){
m=i%n;
if(m==0){sum+=i;}
}
return sum;
}
void main(){
int total;
total=multiple(3)+multiple(5)-multiple(15);
cout<<"The answer is: "<<total<<endl;
}
함수를 이용해서 만들어 봤습니다. 출력을 쉽게 하고 변수를 선언과 동시에 사용하고자 C++를 사용했는데 그것 외에는 별다른 메리트가 없네요^^;;
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
int sum, i;
sum=0;
for(i=1; i<1000;i++){
if(i%3==0 || i%5==0)
sum+=i;
}
printf("sum=%d",sum);
return 0;
}
단순한코드-씨언어입니다
n = 3
multiples = []
while n < 1000:
if n%3 == 0 or n%5 == 0:
multiples.append(n)
n += 1
print (sum(multiples))
내 코드가 초라해보여
#include<stdio.h>
int main(){
int i, result;
for(i=1;i<1000;i++){
if(i%3==0 || i%5==0) result += i;
}
system("pause");
return 0;
}
C 입니다.
def sum_of_multiples_of_3_and_5(num):
som = 0
for i in range(num):
if i % 3 == 0 or i % 5 == 0:
som += i
return som
public class Answer {
static int max = 0;
public static void main(String[] args) {
System.out.println(findNumber(1000));
}
public static int findNumber(int num){
for(int i=1; i<num; i++){
if(i%3 != 0 && i%5 != 0)
continue;
else
max+=i;
}
return max;
}
}
def f(n):
sum=0
for x in range(n):
if x%3==0 or x%5==0:
sum=sum+x
return sum
함수로 임의의 매개변수를 받아서 풀어 보았습니다.
multiples = []
for n in range(1000):
if n % 3 == 0 or n % 5 == 0:
multiples.append(n)
print sum(multiples)
int main(void) {
int a=3;
int b=5;
int num,sum;
while(num<1000)
{
if(num % a==0 || num % b==0)
{
sum+=num;
}
num++;
}
printf("%d",sum);
}
<?php
$result = 0;
for($i=0;$i<1000;$i++) {
if($i%3 == 0 || $i%5 == 0) {
$result = $result + $i;
}
}
echo $result;
?>
python3로 짰습니다. 다른 분들이랑 비슷하기도 하네요 (컨닝한거 아닙니다 ㅜㅠ)
print (sum(set([n * 3 for n in range(1, int(1000/3))]) | set([n * 5 for n in range(1, int(1000/5))])))
buf = []
for x in range(1000):
if x%3 == 0:
buf.append(x)
elif x%5 == 0:
buf.append(x)
print sum(buf)
파이썬입니다
listA = []
result = 0
for i in range(1000) :
if i % 3 ==0 or i % 5 ==0 : listA.append(i)
for i in listA :
result += i
print(result)
맨날 사용하는 bash를 이용해서 어찌하면 1초 이내의 코드가 나올지 고민해봤습니다. echo로 5의배수와 3의배수만 출력하고, sed로 띄어쓰기를 엔터로 고치고, 중복값은 sort -u로 제거하고, awk 로 총합 구하는 것입니다.
#!/bin/bash
echo {0..999..5} {0..999..3} | sed 's/ /\n/g' | sort -u | awk '{sum+=$1}END{print sum}'
num = 0
hum = 0
while num < 1000:
if num % 5 == 0 or num % 3 == 0:
hum += num
num += 1
print hum
파이썬공부하는 도중에 파이썬으로 작성했습니다.
c++로 작성하였습니다.
#include <iostream>
using namespace std;
int main()
{
int i = 0; int temp = 0;
while (i < 1000) {
if (i % 3 == 0 || i % 5 == 0) temp += i;
i++;
}
cout << temp << endl;
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int total = 0;
for (int i = 3; i < 1000; ++i)
{
if (i % 3 == 0 || i % 5 == 0)
total += i;
}
cout << total << endl;
return 0;
}
C로는 이게 최선인가 싶네요. 파이썬으로 하면 초간단!
#include <iostream>
using namespace std;
int main() {
int i_sum=0;
for (int i = 1; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0) {
i_sum += i;
}
}
cout << i_sum << endl;
return 0;
}
#include <stdio.h>
int main(void){
int sum=0,i;
for(i=1;(3*i)<1000;i++){
sum+=(3*i);
}
for(i=1;(5*i)<1000;i++){
sum+=(5*i);
}
for(i=1;(15*i)<1000;i++){
sum-=(15*i);
}
printf("%d\n",sum);
return 0;
}
#include <stdio.h>
int main(void){
int sum=0,i;
for(i=1;;i++){
if((3*i)<1000){
sum+=(3*i);
}
else if((3*i)>1000){
break;
}
if((5*i)<1000){
sum+=(5*i);
}
if((15*i)<1000){
sum-=(15*i);
}
}
printf("%d\n",sum);
return 0;
}
둘중에 어떤게 더 사용하기좋을까요?
파이썬 2.7
max_num = 10
def multiples(n, m, num):
result = [i for i in range(num) if i % n == 0 or i % m == 0]
return sum(result)
print multiples(3,5, max_num)
Mult_3_5 =[]
for x in range(1000):
if x%3 == 0 or x%5 == 0:
Mult_3_5.append(x)
print('Result is %d' % sum(Mult_3_5))
function sum3_5 ($max) {
$sum = 0;
for ($i = 0; $i < $max; $i++) {
if ($i % 3 == 0 || $i % 5 == 0) {
$sum += $i;
}
}
return $sum;
}
echo sum3_5(1000);
#1...
s1= set([i for i in range(3,1000,3)])
s2= set([i for i in range(5,1000,5)])
s1.update(s2)
sum(s1)
#2... (간단버전)
sum (set([i for i in range(1000) if i%3==0 or i%5==0]))
sum = 0
for num in range(1000): if num % 3 ==0 or num %5 == 0 : sum += num print (sum)
sum = 0 num = 0
while sum < 1000: if sum % 3 == 0 or sum %5 == 0: num += sum sum += 1 print (num)
하나는 for 하나는 while 문으로 바꿨습니다.
def multiples_of_a_and_b(n, a=3, b=5):
x = set(range(a, n, a))
y = set(range(b, n, b))
return sum(x | y)
Swift 2.1로 작성했습니다.
func isMultiplesOf3or5(n: Int) -> Bool {
return (n % 3 == 0) || (n % 5 == 0)
}
Array(1...1000).filter { isMultiplesOf3or5($0) }.reduce(0) { $0 + $1 }
한줄로도 표기가 가능할 것 같았는데, filter에 ()가 너무 많다고 에러를 뱉네요.. -_-;;
#include <iostream>
using namespace std;
void main()
{
int nVal = 1000;
int nResult = 0;
for (int i = 0; i < nVal; i++)
{
//3과 5의 배수인지 검사
//맞다면, nRusult에 저장
if ((i % 3) == 0 || (i % 5) == 0)
{
nResult += i;
}
}
//결과, nResult 출력
cout << nVal << "미만의 3과 5의 배수" << endl;
cout << "결과 : [ " << nResult << " ] "<< endl;
}
Python
sum([i for i in range(1000) if i%3 == 0 or i%5 ==0])
Haskell
sum [x|x<-[1..999], x `mod` 3 == 0 || x `mod` 5 ==0]
C++
#include <iostream>
int main() {
int sum = 0;
for(int i=0;i<1000;++i) {
if(i%3 == 0 || i%5 == 0) {
sum += i;
}
}
std::cout << sum << std::endl;
return 0;
}
결과 233168
등차수열의 합 문제네요.
int n3 = 999/3;
int n5 = 999/5;
int n15 = 999/15;
int sum3 = n3*(3+(3+(n3-1)*3))/2;
int sum5 = n5*(5+(5+(n5-1)*5))/2;
int sum15 = n15*(15+(15+(n15-1)*15))/2;
int totalSum = sum3 + sum5 - sum15;
System.out.println(totalSum);
정답 : 233168
시간 복잡도가 O(n) 에서 O(1)으로 해결할 수 있는 문제였어요
#include <stdio.h>
int main()
{
int cntr = 0, i;
for (i=0;i<1000;i++)
{
if (i%3 == 0 || i%5 == 0)
{
cntr += i;
}
}
printf ("%d", cntr);
return 0;
}
C 입니다.
def 배수(배수값, i):
if i*배수값 >= 1000:
return 0
else :
return (i*배수값) + (배수(배수값, i+1))
print(배수(3, 1)+배수(5, 1)-배수(3*5, 1))
자바로 작성했습니다. 3,5의 배수의 합이므로 3의 배수의 합과 5의 배수의 합을 더하고 중첩되는 3과 5의 최소공배수인 15의 배수의 합을 빼주면 3과 5의 배수의 합을 구할 수 있습니다. 단순하게 루프를 돌려서 값을 구하는 것보다 10배정도 빠르게 결과 값이 나오는 것을 측정했습니다.
public class MultiplesOf3and5 {
public static void main(String[] args) {
int result=0;
int[] d={1000/3,1000/5,1000/(3*5)};
int[] e=new int[3];
for(int i=0; i<d.length;i++){
if(d[i]%2==0){
e[i]=(d[i]+1)*(d[i]/2);
}else{
e[i]=(d[i])*(d[i]/2)+d[i];
}
}
result=e[0]*3+e[1]*5-e[2]*15;
System.out.println(result);
}
}
def pro1(input1):
a=[]
for i in range(1,input1):
if i%3 ==0 or i%5 ==0:
a.append(i)
b = sum(a)
return b
print pro1(1000)
list_1 = []
for a in range(1,1000):
if a%3 == 0 or a%5 ==0:
list_1.append(a)
if a == 999:
print(sum(list_1))
하다보니 재미있네요. 파이썬 입니다.
간단한 자바입니다..
public class calc {
public static void main(String... args){
int sum = 0;
for(int i = 1 ; i<1000 ; i++) if(i%3 == 0 || i%5 == 0) sum+=i;
System.out.println(sum);
}
}
검사할때 String으로 바꿔서 3은 각 자리수 합, 5는 마지막 자리로도 할 수 있겠네요.
python 3.5
def multiple_3_5(number):
return sum(set([i for i in range(number) if i % 3 == 0 or i % 5 == 0]))
print(multiple_3_5(1000))
Java ]]
public static void main(String[]args){
System.out.println("1000 미만의 자연수중 3 또는 5 배수들의 합은?");
hol();
}
public static int hol(){
int value = 0 ;
for(int i = 1; i < 1000; i++){
if(i % 3 == 0 || i % 5 == 0){
value += i;
System.out.println(i + " ");
}
}
System.out.println( "\n = "+value );
return value;
}
print(sum(set(range(3,1000,3))|set(range(5,1000,5))))
파이썬 3.5.1
import java.util.*;
public class _multiples_of_3_and_5 {
public static final int TARGET = 1000;
public static void main(String[] args) {
HashSet<Integer> list = new HashSet<Integer>();
int i = 1, sum = 0;
while (true){
if (3*i < TARGET)
list.add(3*i);
else
//3*i 가 1000보다 클 경우 5*i는 무조건 1000보다 크므로 3*i만 따짐.
break;
if (5*i < TARGET)
list.add(5*i);
i++;
}
for (int j : list){
sum += j;
}
System.out.println(sum);
}
}
자바
int multiple() {
int sum = 0;
int i = 1;
int j = 1;
int k = 1;
while(3*i < 1000) {
sum += 3 * i;
i++;
}
while(5*j < 1000) {
sum += 5 * j;
j++;
}
while(3*5*k < 1000) {
sum -= 3*5 * k;
k++;
}
return sum;
}
java로 작성했습니다.
파이썬 3부터는 reduce를 쓰려면 import를 해야해서.. 귀찮아서 livescript로 작성했습니다.
[x for x from 1 til 1000 when x % 3 == 0 or x % 5 == 0] .reduce (+), 0 |> console.log
앞에 set의 합집합이나, range를 3의 배수로 스텝밟는 방법, 리스트 함축으로 푸는 방법들 정말 대단하네요!
s = 0
for a in range(1, 1000):
if a % 3 == 0 or a % 5 == 0:
s += a
print(s)
다른 코드 참고해서 수정했습니다.
여기서 0 하나만 더 붙이면 메모리에러가 나네요
n = 10000000
m3 = (x for x in range(0, n, 3))
m5 = (x for x in range(0, n, 5))
sum(set(m3) | set(m5))
초보스럽습니다만 가독성과 성능은 나쁘지 않습니다.
sum=0
def MultipleOf_3(num):
if num%3==0:
return True
else:
return False
def MultipleOf_5(num):
if num%5==0: return True
else: return False
for i in range(1000):
if MultipleOf_3(i) or MultipleOf_5(i):
sum+=i
print("Sum of Multiple of 3 or 5 ={0}".format(sum))
#include <stdio.h>
int main(void) {
int num1, num2;
int mul1, mul2, mul3;
int sum1=0;
int sum2=0;
int lcm=0;
int i=1;
printf("두수를 입력하시오. \n");
scanf("%d", &num1);
scanf("%d", &num2);
for(i=1; i<500; i++){
mul1=num1*i;
if(mul1<=1000){
sum1=sum1+mul1;
}else
break;
//printf("%d ", mul1);
}
printf("sum1 = %d \n",sum1);
for(i=1; i<500; i++){
mul2=num2*i;
if(mul2<=1000){
sum2=sum2+mul2;
}else
break;
//printf("%d ", mul2);
}
printf("sum2 = %d \n",sum2);
for(i=1; i<11; i++){
mul3=(num1*num2)*i;
if(mul3<=1000){
lcm=lcm+mul3;
}else
break;
}
printf("최소공배수의 합 = %d \n",lcm);
printf("최종합 sum : (%d+%d)-%d = %d", sum1, sum2, lcm, (sum1+sum2)-lcm);
printf("\n");
return 0;
}
C언어로 작성했어요
int result = 0;
for(int i = 0 ;i < 1000 ;i++){
if(i % 3==0 || i % 5 ==0){
result+= i;
}
}
System.out.println(result);
return result;
xx = set()
for aa in range(0, 1000):
if aa % 3 == 0 or aa % 5 == 0:
xx.add(aa)
print(xx)
print(sum(xx))
파이썬 배운지 1주일 된 초보입니다. 더럽게 짜기는 했지만 일단.
a=3
b=5
c=1000
d=0
e=15
while a < c:
d=d+a
a=a+3
while b < c:
d=d+b
b=b+5
while e < c:
d=d-e
e=e+15
print(d)
public class test {
public static void main(String[] args) {
int i;
int result = 0;
for (i = 1; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0) {
result += i;
}
}
System.out.print(result);
}
}
@Test
public void 배수구하기() {
logger.debug("10미만 3,5 배수의 총합 {}", IntStream.range(1, 10).parallel().filter(x -> x % 3 == 0 || x % 5 == 0).sum());
logger.debug("1000 미만 3,5 배수의 총합 {}", IntStream.range(1, 1000).parallel().filter(x -> x % 3 == 0 || x % 5 == 0).sum());
}
sum(unique(c(which(c(1:999) %% 3 == 0), which(c(1:999) %% 5 == 0))))
or
sapply(c(3, 5), function(x){which(c(1:999) %% x == 0)}) %>% unlist %>% unique %>% sum
여기서 요구하는 숫자가 3과 5 두 수만 요구하니깐 위의 코드가 편한데, 만약 3과 5가 아닌 여러개의 수를 이용해 답을 요구할 때는 아래와 같이 작성하면 편리할 듯 합니다.
R에서 작성했습니다. 감사합니다.
C입니다
#include <stdio.h>
#define MAX 1000
int main()
{
int sum=0;
for(int i=0;i<MAX;i+=3)
{
sum += i;
}
for(int i=0;i<MAX;i+=5)
{
if(i%3==0) continue;
sum += i;
}
printf("%d", sum);
}
C로 조금 다르게 이런다고 성능개선이 될지는 모르겠습니다 ㅜㅜ
파이썬 3.5로 작성되었습니다.
sum = 0
for i in range(1, 1000):
if i % 3 == 0 or i % 5 == 0:
sum = sum + i
print(sum)
#include <iostream> #include <cstdlib> #include <cstdio> #include <algorithm> using namespace std; int main(){ int sum = 0; for (int i = 1; i < 1000; i++){ if (i%3 == 0) sum += i; if (i%5 == 0) sum += i; if (i%15 == 0) sum -= i; } cout << sum << endl; return 0; }
포함 배제의 원리를 사용해서 쉽게 해결할 수 있습니다.
list = []
for x in range(1,1000):
if x%3 == 0 or x%5 == 0:
list.append(x)
print sum(list)
python 2.7
답 : 233168
>>> from itertools import ifilterfalse
>>> sum(ifilterfalse(lambda x: x % 3 and x % 5, range(1001)))
234168
자바로 만들었습니다. package javaCoding;
import java.util.ArrayList; import java.util.Iterator; import java.util.List;
public class Coding005 {
public static void main(String[] args) {
int num1=3;
int num2=5;
int sum1=0;
int sum2=0;
List<Integer> list=new ArrayList();
List<Integer> list2=new ArrayList();
//
for (int i = 0; i < 1000; i++) {
if(num1*i<1000){
list.add(num1*i);
}
}
//
for (int i = 0; i < 1000; i++) {
if(num2*i<1000){
list2.add(num2*i);
}
}
System.out.println(list.size());
System.out.println(list2.size());
for (int i = 0; i < list.size(); i++) {
for (int j = 0; j < list2.size(); j++) {
if(list.get(i)==list2.get(j)){
list2.remove(j);
}
}
}
System.out.println(list.size());
System.out.println(list2.size());
for (Integer mo : list2) {
sum1 +=mo;
}
for (Integer mo : list) {
sum2 +=mo;
}
System.out.println(sum1+sum2);
}
}
int nTotal = 0;
for (int iter = 0; iter < 1000; iter++)
{
if (iter % 3 == 0 || iter % 5 == 0)
nTotal += iter;
}
C# 으로 짜봤습니다~
파이썬 2.7
lista=[]
listb=[]
listc=[]
b=0
c=0
d=0
for a in range(1,1000):
if a%3==0:
lista.append(a)
if a%5==0:
listb.append(a)
if a%15==0:
listc.append(a)
for i in lista:
b=b+i
for j in listb:
c=c+j
for k in listc:
d=d+k
print b+c-d
#include <stdio.h>
void main(){
int sum,i,b,c;
sum = 0;
for (i = 1; i <= 1000; i++){
b = i % 3;
c = i % 5;
if (b == 0||c==0){
sum = sum + i;
}
}
printf("합은 %d \n", sum);
}
C로작성
package main
import "fmt"
func main() {
c := make(chan int)
for i := 0; i < 10; i++ {
go func(start int) {
sum := 0
for i := start; i < start+100; i++ {
if (i%3 == 0 || i%5 == 0) {
sum += i
}
}
c <- sum
}(i*100)
}
sum := 0
for i := 0; i < 10; i++ {
sum += <- c
}
fmt.Print("Sum = ", sum)
}
Java로 작성
public class Project {
static int pro1(){
int result=0;
for(int i=0;i<1000;i++){
if(i%3==0||i%5==0)
result+=i;
}
return result;
}
public static void main(String args[]){
System.out.println(pro1());
}
}
package main
import "fmt"
func main() {
sum := 0
for i := 1; i < 1000; i++ {
if i % 3 == 0 || i % 5 == 0 {
sum += i
}
}
fmt.Print(sum)
}
Python3.5
답 : 234168 언어를 불문하고 비슷한 코드가 많네요 ^^
sum = 0
for i in range(1,1001):
if i % 3 == 0 or i % 5 == 0:
sum += i
print(sum)
#include <iostream>
#include <string>
#include <vector>
int main(void) {
int sum = 0;
bool exist;
std::vector<int> vec;
for (auto i = 0; i < 1000; i++) {
if ((i % 3 == 0) || (i % 5 == 0)) {
exist = std::find(vec.begin(), vec.end(), i) != vec.end();
if (!exist) {
sum += i;
vec.push_back(i);
}
}
}
std::cout << "Result : " << sum << std::endl;
}
Plus @@ Select[Range[999], (Divisible[#, 3] || Divisible[#, 5]) &]
결과: 233168
Plus @@ (Union[Range[0, 999, 3], Range[0, 999, 5]])
결과: 233168
mathematica
import java.util.ArrayList;
public class test {
public static void main(String[] argv) {
int x = 0;
for(int i = 0; i < 1000; i ++){
if(i%3 ==0 || i%5==0){
x = x+i;
}
}
System.out.println(x);
}
}
void main() {
int sum=0;
for(int i=0; i<=999; i++)
{
if(i%3==0 || i%5==0)
{
sum=sum+i;
}
}
printf("%d는 합\n",sum);
}
c로 작성 했습니다. 기존의 해답코드들이 잘 나와 있어서 몇가지만 바꿧습니다.
public static void main(String[] args) {
int num =0;
for(int i =1; i<1000; i++){
if(i%3==0||i%5==0){
num +=i;
}
}
System.out.println(num);
}
합은 233168
#include<stdio.h>
int main(void)
{
int sum = 0;
int i;
for(i = 0 ; i<1000; i++)
{
if((i%3 == 0) || (i%5 == 0))
{
sum = sum + i;
}
}
printf("sum의 값은 : %d\n", sum);
}
Delphi 2010
function fnMultiplesofdata(const C: array of integer; F: integer= 1000): Int64; //3,5
var
i, j, k, g: integer;
nSum : int64;
V: array of boolean;
begin
//F := 1000; //1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
SetLength(V, F+1);
for i := 0 to F do
V[i] := true;
nSum := 0;
for k := 0 to High(C) do
begin
g := C[k];
for i := 1 to (F - 1) div g do
begin
j := i * g;
if V[j] then
begin
V[j] := false; //Count One Times
nSum := nSum + j;
end;
end;
end;
result := nSum;
end;
procedure TForm4.Button3Click(Sender: TObject);
begin
Caption := IntToStr(fnMultiplesofdata([3,5], 1000));
end;
import java.util.stream.IntStream;
public class Multiplesof3and5 {
public static void main(String[] args) {
System.out.println(IntStream.range(1, 1000).filter(j -> j%3 == 0 || j%5 == 0).sum());
}
}
#include <stdio.h>
int main(void)
{
int i, sum;
i = 1, sum = 0;
while (i < 1000) {
if (i % 3 == 0 || i % 5 == 0) {
sum += i;
i++;
}
else
i++;
}
printf("%d\n", sum);
return 0;
}
C로 작성했습니다.
package 코딩도장;
public class Q7 {
public static void main(String[] args) {
int sum=0;
for(int i=1;i<1000;i++)
{
if(i%3 ==0 || i%5 ==0)
{
sum += i;
}
}
System.out.println(sum);
}
}
result=0
for k in range(1, 1000):
if k%3==0 or k%5==0:
result+=k
print(result)
떠오른 아이디어 1. 리스트의 덧셈 후 중복 제거, 2. for문으로 숫자를 올려가면서 정제성을 검사 : 후자 채택
자바로 코딩
public static void main(String[] args){
try{
int num = 1000;
int cnt1 = 0;
int cnt2 = 0;
int i = 1;
while(true){
int number = 3 * i;
if( number < 1000 ){
i++;
cnt1++;
}else{
break;
}
}
int j = 1;
while(true){
int number1 = 5 * j;
if( number1 < 1000 ){
j++;
cnt2++;
}else{
break;
}
}
System.out.println("cnt :: ==> " + (cnt1 + cnt2) );
}catch(Exception e){
e.printStackTrace();
}
}
자바로 코딩
public static void main(String[] args){
try{
int sum = 0;
for(int i=0; i<1000; i++){
if( (i%3==0) || (i%5==0) ){
sum += i;
}
}
System.out.println(sum);
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) {
int sum=0;
for(int i=1; i<1000; i++){
if(i%3==0 || i%5==0)
sum+=i;
}
System.out.println(sum);
}
}
def multiples_of_three_five(number):
result = []
for i in range(number):
if i % 3 == 0 or i % 5 == 0 :
result.append(i)
return sum(result)
print multiples_of_three_five(10)
print multiples_of_three_five(1000)
var result = 0;
for( var i=1; i<1000; i++ ){
if( i%3 == 0 || i%5 == 0 )
result += i;
}
console.log(result);
python 3.5 공통배수에 따로 해야하나 고민하다가 문맥상 한번만 보는 것 같다고 판단했습니다.
print(sum([x for x in range(1000) if x%3==0 or x%5==0]))
Python 3
print(sum(filter(lambda x: x % 3 == 0 or x % 5 == 0, range(1000))))
List Comprehension은 이미 있네요.
var sum = 0;
var mult3 = 0;
var mult5 = 0;
var limit = 1000;
while(true){
mult3 += 3;
if(mult3 < limit)
sum += mult3;
mult5 += 5;
if(mult5 < limit && mult5 % 3 > 0)
sum += mult5;
if(mult3 >= limit && mult5 >= limit)
break;
}
document.write(sum);
괜히 최적화를 해보고 싶었네요ㅠ
def Multiples_of_3_5():
list= []
for i in range(0,1000):
if(i%3==0 or i%5==0):
list.append(i)
print sum(list)
Multiples_of_3_5():
def multiple_of_3_and_5(x):
result = 0
result = sum([i for i in range(x) if i%3 == 0 or i%5 == 0])
return result
print (multiple_of_3_and_5(1000))
예제로 해봤던 문제같은데... 파이썬이라서 간단히 할 수 있었던것 같습니다.
int num=0;
for(int i=1; i<1000; i++){
if(i%3==0 || i%5==0){
num += i;
}
}
System.out.println(num);
}
}
int main(void){ int i, sum=0;
for(i=1;i<1000;i++){
if(i%3==0 || i%5==0) sum+=i;
}
printf("%d",sum);
}
int result = 0; for (int i = 0; i < 1000; i++) { if ((i % 3) == 0 || (i % 5) == 0) { result += i; } } System.out.println(result);
결과: 233168 언어: java
보자마자 합집합이 생각나더군요
multi3=set([i for i in range(1, 1000) if i%3==0])
multi5=set([i for i in range(1, 1000) if i%5==0])
print(sum(multi3 | multi5))
java풀이입니다. public class ex_01 { public static void main(String[] args) { int res=0;
for(int i=1; i<1000; i++){
if(i%3==0||i%5==0)
res+=i;
}
System.out.println("총 합:" + res);
}
정답은 233168 입니다.
def findTotalSum(max, dev1, dev2):
totalSum = 0;
for i in range(1,max+1):
if i%dev1 == 0 or i%dev2 == 0:
print(i)
totalSum += i
return totalSum
print(findTotalSum(1000, 3, 5))
234168
233168
#include <stdio.h>
#include <stdlib.h>
void main(void) {
int temp3 = 3;
int sum3 = 0;
int temp5 = 5;
int sum5 = 0;
int cm_sum = 0;
int common_multiple = temp3 * temp5;
int out;
for(int i=0;i < 1000; i ++) {
if(temp3 * i < 1000)
sum3 = sum3 + temp3 * i;
if(temp5 * i < 1000)
sum5 = sum5 + temp5 * i;
if(common_multiple * i < 1000)
cm_sum = cm_sum + common_multiple * i;
}
out = sum3+sum5 - common_multiple;
printf("%d\t", out);
}
#include <stdio.h>
int main()
{
int s = 0;
for(int i = 0; i < 1000; i++)
if(i % 3 == 0 || i % 5 == 0)
s += i;
printf("%d", s);
}
(0 until 1000).filter(x => x % 3 == 0 || x % 5 == 0).sum
스칼라로 간단하게 풀어봤습니다.
(reduce + (filter (fn [x] (or (= 0 (mod x 3)) (= 0 (mod x 5)))) (range 1000)))
연습삼아 클로저로도 한 번 풀어봤습니다.
기본적인 원리는 둘 다 같습니다.
#define _CRT_SECURE_NO_WARNINGS
#include <windows.h>
#include <stdio.h>
int main(void) {
int sum = 0;
for (int i = 1; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0) {
sum += i;
}
}
printf(("총 합은 = %d\n"), sum);
system("pause");
return 0;
}
i=0
h=0
x=0
smi=0
smh=0
smx=0
while i<1000:
i=i+5
if i >= 1000: break
smi=smi+i
while h<1000:
h=h+3
if h >= 1000: break
smh=smh+h
while x<1000:
x=x+15
if x >= 1000: break
smx=smx+x
print(smi+smh-smx)
package main
import "fmt"
func main() {
sum := 0
for num:=1; num<1000; num++ {
if num%3==0 || num%5==0 {
sum += num
}
}
fmt.Println(sum)
}
GO언어로 작성
int sum(int limit)
{
int iTotal=0,i3=0,i5=0;
while(1)
{
i3 += 3;
if(i3 >= limit) break;
iTotal += i3;
i5 += 5;
if(i5 >= limit) break;
iTotal += i5;
}
return iTotal;
}
#include<iostream>
using namespace std;
int main()
{
int n3 = 3;
int n5 = 5;
int total = 0;
for (int i = 1;i < 1000;i++)
{
if (i % 3 == 0 || i % 5 == 0)
total += i;
}
cout << "총 합은 " << total << "입니다" << endl;
}
#include <stdio.h>
int cal()
{
int i;
int arr = 0;
for(i=0; i<1000; i++)
{
if((i%3) == 0){
arr += i;
}
if((i%5) == 0){
arr += i;
}
}
return arr;
}
int main()
{
printf("%d \n",cal());
return 0;
}
def getMultiples(n, m):
x = [i for i in range(1, n) if i%m==0]
return x
x = set(getMultiples(1000, 3) + getMultiples(1000, 5))
print(sum(x))
#include <stdio.h>
int main(){
int third=0;//3의 배수
int fifth=0;//5의 배수
int sum;//각 배수의 총합
for (int i = 1; i < 1000; i++){
if ((i % 3) == 0)
third += i;
}
for (int j = 1; j < 1000; j++){
if ((j % 5) == 0)
fifth += j;
}
sum = third + fifth;
printf("1000미만의 3과 5의 배수의 총 합은 %d이다.\n", sum);
return 0;
}
int idx =0; int ret =0; while(idx==1000) { if(((idx%3)==0)||((idx%5)==0)) { ret = idx + ret; } idx++; }
return ret;
list comprehension이나 고차언어 없이 정석적으로 써 보았습니다.
numbers = range(0,1000)
multiples = []
for i in numbers:
if i % 3 == 0 or i % 5 == 0:
multiples.append(i)
else:
pass
print(sum(multiples))
Python 3.5.2
import java.util.*;
public class test5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int res =0;
for(int i = 0;i<1000;i++){
if(i%3==0 || i%5==0){
res +=i;
}
}
System.out.println(res);
}
}
안녕하세요. C++로 풀었습니다.
#include<iostream>
#include<string>
using namespace std;
void main()
{
cout<<"Hello Stranger??"<<endl;
int sum = 0;
for(int i=0; i<1000; i++)
if( i%3 ==0 || i%5 ==0)
sum += i;
cout<<sum;
}
public class no01_Multiples_of_3_and_5 {
public static void main(String[] args) {
int num = 0;
for(int i=1; i<1000; i++)
{
if( i%3==0 || i%5==0)
{
num += i;
}
}
System.out.println(num);
}
}
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class SumOfMultiples {
public static void main(String[] args) {
}
public int sumOfMultiples(int n) {
int sum = 0;
for(int i = 1; i < n; i++) {
if(i % 3 == 0 || i % 5 == 0) {
sum += i;
}
}
return sum;
}
@Test
public void testSumOfMultiples() {
assertEquals(233168, sumOfMultiples(1000));
}
}
문제 설명을 코드로 옮기기..
1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
int sum = 0;
for (int i = 1; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0)
sum += i;
}
def Mult3N5(Max):
list3N5=[]
for i in range(1,Max):
if i % 3 == 0 or i % 5 == 0 :
list3N5.append(i)
total=0
for x in list3N5 :
total += x
return total
print(Mult3N5(1000))
import java.util.ArrayList;
public class Multiples {
public static int multiple (int a){
ArrayList<Integer> neu = new ArrayList<Integer>();
for(int x=1; x<a; x++){
if ( x % 3 == 0 || x % 5 == 0){
neu.add(x);
}
}
int total = 0;
int num;
for(int k=0;k<neu.size();k++){
num = neu.get(k);
total += num;
}
return total;
}
public static void main (String argv[]){
int n = 1000;
System.out.println(multiple(n));
}
}
sum = 0
for i in range(1, 1000):
b = False
if i%3 == 0 :
sum +=i
b = True
if i%5 == 0:
sum +=i
if b :
sum -=i
print("합 : %s"%sum)
public static void main(String[] args) {
int total = 0;
for(int i = 3; i < 1000; i = i + 3 ) {
if(i % 15 == 0) continue;
total += i;
}
for(int i = 5; i < 1000; i = i + 5) total += i;
System.out.println("total = " + total);
}
List<int> list = new List<int>();
for(int i=1; i<1000; i++)
{
list.Add(i);
}
var result = list.Where(x => (x % 5 == 0) || (x % 3 == 0)).Sum();
Console.WriteLine(result);
C#의 linq를 사용해서 작성해봤습니다.
max_value = 999
sum = 0
for i in range(1, max_value):
if i % 3 == 0:
sum = sum + i
if i % 5 == 0:
sum = sum + i
if i % 15 == 0:
sum = sum - i
print sum
JAVA 로 작성했습니다. 재귀호출을 이용했고요.
1000미만의 3과 5의 배수의 합은 233,168 이네요.
package Questions;
public class SumOfMultipleNumber {
public static void main(String[] args) {
// TODO Auto-generated method stub
Number num = new Number();
long lStartTime = System.currentTimeMillis();
int retSum = num.getMultipleNumber(3, 1, 1000) + num.getMultipleNumber(5, 1, 1000) - num.getMultipleNumber(15, 1, 1000);
long lDuration = System.currentTimeMillis() - lStartTime;
System.out.println(String.format("Elapsed Time: %.3f seconds", lDuration/ 1000.0f));
System.out.println(String.format("Sum of MultipleNumber: %d", retSum));
}
}
final class Number {
int totSum = 0;
public int getMultipleNumber(int num, int cnt, int maxNum) {
if (num * cnt < maxNum) {
return (num * cnt) + getMultipleNumber(num, ++cnt, maxNum);
} else {
return 0;
}
}
}
public int SumOfMultiples(int seed1, int seed2){
int result = 0;
for(int i =1; i <1000; i++){
if((i%seed1 == 0) || (i%seed2 == 0))
result += i;
}
return result;
}
print(sum(set([i for i in range(1001) if i % 3 == 0 ]+[i for i in range(1001) if i % 5 == 0 ])))
#### 2016.12.03 D-446 ####
아하~ 리스트안에 중복 if 넣으니깐 공배수만 찾아서 어떻게 따로 하게하나 했더니... if 조건 or 조건 이렇게 쓰는군요!!!! 굿굿!!
http://codingdojang.com/scode/436 <- 이 문제하고도 비슷하네요.
Haskell에서 3의 곱 리스트와 5의 곱 리스트를 merge한다음 <1000의 합을 계산합니다.
merge (x:xs) (y:ys) | x<y = x:merge xs (y:ys)
| x==y = x:merge xs ys
| x>y = y:merge (x:xs) ys
multiples xs = foldr1 merge [map (*x) [1..]| x<-xs]
main = print $ sum $ takeWhile (<1000) $ multiples [3,5]
int main() { int i, sum = 0; for (i = 1; i < 1000; i++) { if ((i%3 == 0) || (i%5 == 0)) sum += i; } printf("%d\n", sum); }
public class Sum {
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 = 0
for i in range(1,1000):
if i*3 < 1000:
mul_3.append(i*3)
sum = sum + (i*3)
if i*5 < 1000:
mul_5.append(i*5)
sum = sum + (i*5)
코드설명 - 3과 5의 배수를 임의의 범위 만큼 구한다. - 3과 5의 배수중에서 1000보다 작은 값을 sum 변수에 저장
결과값 - 266333
int main(){
int def=0, end;
printf("end : ");
scanf("%d", &end);
for (int i=1; i < end; i++){
if (((i % 3) == 0) || ((i % 5)==0)){
if ((i !=3)){
printf(",");
}
def = i+def;
printf("%d", i);
}
}
printf("\n결과 = %d", def);
}
c언어 작성이구 범위는 1~입력값 중간에 if문 i != 3부분은 ,표가 이쁘게 나오게 하려구 넣었습니다.
public static void main(String[] args) {
int a = 0;
for(int i = 1 ; i < 1000 ; i++) {
if(i%3 == 0 || i%5 == 0) {
a += i;
}
}
System.out.println(a);
}
public class Ex_5 {
public static void main(String[] args) {
SumEuler s = new SumEuler(1000);
}
}
class SumEuler{
public SumEuler(int n) {
int sum = 0;
for (int i = 1; i < n; i++) {
if (i%3==0||i%5==0) {
sum += i;
}
}
System.out.println(sum);
}
}
#include <iostream>
using namespace std;
int main()
{
int sum = 0;
int n = 1000;
for (int i = 3; i < n; i += 3) // i는 3의 배수
sum += i;
for (int i = 5; i < n; i += 5)
if (i % 3) // i가 3의 배수가 아닐 경우 더해줍니다
sum += i;
cout << sum << endl;
return 0;
}
#include<stdio.h>
int main(void)
{
int n1, n2, limit;
int i, tot;
scanf("%d %d %d", &n1, &n2, &limit);
n1 > n2 ? (i = n2) : (i = n1);
tot = 0;
while (i < limit)
{
if (i % n1 == 0 || i % n2 == 0)
{
tot += i;
}
i++;
}
printf("%d", tot);
return 0;
}
public class Algorithm4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int nSum = 0;
for(int i = 0; i < 1000; i++) {
if(i % 3 == 0 || i % 5 == 0 ) nSum += i;
//if(i % 15 == 0 ) nSum -= i;
} // end for
System.out.println("0~1000의 값중 3, 5의 배수의 합은 : " + nSum + "입니다.");
}
}
#include<stdio.h>
#include<Windows.h>
#define MAX 10
int main()
{
int i=1,sum=0;
while(i<MAX)
{
if((i%3==0)||(i%5==0))
sum+=i;
i++;
}
printf("총합은 %d입니다\n",sum);
system("pause");
return 0 ;
}
무난무난하게...
#include <iostream>
int main(void)
{
using namespace std;
int N;
cout << "Input N: ";
cin >> N;
int sum = 0;
for(int i = 1; i < N; i++)
{
if(i % 3 == 0 || i % 5 == 0)
sum+=i;
}
cout << "Result : " << sum << endl;
}
public class test02 { public static void main(String[] args) { int a = 3; int b = 5; int sum = 0; for(int i = 1; i<1000; i++){ if(i % a ==0){ sum += i; } if(i % b ==0){ sum += i; } if(i % (a*b) ==0){ sum -= i; } } System.out.println(sum); } }
매트랩은 없는것 같아서 올립니다.
result = 0;
for i = 1 : 999
if (mod(i, 3)==0) || (mod(i, 5)==0)
result = result + i;
end
end
disp(result)
int x = 3, y = 5, z = 15;
int result = 0;
for (int i = 1; i < 1000; i++) {
if(i % 3 == 0 || i % 5 == 0)
result += i;
if(i % 3 == 0 && i % 5 == 0)
result -= i ;
}
System.out.println(result +"");
3의배수 + 5의 배수 - 15의 배수 아닌가요??????
$array = array();
for($i=1000;1<=$i;$i--) if($i%5 == 0 || $i%3 == 0 ) $array[] = $i;
echo array_sum($array); // 234168
간단하게 STL 벡터를 이용해서 풀어봤습니다.
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> ivec;
int iSum = 0;
for(int i = 0; i < 1000; ++i)
{
if(i % 3 == 0 || i % 5 == 0)
{
ivec.push_back(i);
}
}
vector<int>::iterator iter = ivec.begin();
vector<int>::iterator Enditer = ivec.end();
for(iter = ivec.begin(); iter != Enditer; ++iter)
{
iSum += *iter;
}
cout << iSum << endl;
return 0;
}
public class Multiple { public static void main(String[] args) { int sum = 0; for (int i=1; i<1000; i++) { if (i%3 == 0 || i%5 == 0) { sum += i; } } System.out.println("Answer : " + sum); } }
(1 to 999).filter(i => i % 3 == 0 || i % 5 == 0)
.foldLeft(0) { (m: Int, n: Int) => println("m: " + m + " n: " + n); m + n }
// 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
##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 <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);
}
}
public static void main(String[] args) {
int _sum=0;
for(int i=1;i<1000;i++){
if(i%3==0||i%5==0){
_sum+=i;
}
}
System.out.println(_sum);
}
''' 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. '''
import numpy as np
B = input("Put in the boundary : ")
gen = (one for one in np.arange(1,int(B)) if one%3 == 0 or one%5 == 0) sums = 0
try: while True : sums += next(gen)
except StopIteration : pass
print(sums)
void solution(void)
{
int x=0, sum=0;
int a=3, b=5;
for(x=1; x<1000;x++)
{
if(x%a == 0)
sum+=x;
else if(x%b == 0)
sum+=x;
}
}
===> [233168]
public class Multiples {
public static void mulCalc(int n) {
int result = 0;
for (int i = 1; i < n; i++) {
if (i % 3 == 0 || i % 5 == 0) {
result += i;
}
}
System.out.println(result);
}
public static void main(String[] args) {
mulCalc(10); //23
mulCalc(1000); //233168
}
}
def Three_five(n):
n=n-1
[x, y, z]=[n//3, n//5, n//15]
print(int(x*(x+1)/2*3+y*(y+1)/2*5-z*(z+1)/2*15 ))
/*
dev : peanutBro
date : 170218
content :
10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다.
1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
*/
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif
#include <iostream>
using namespace std;
int main(void)
{
int a = 3, b = 5, addNumber=0;
for (int i = 0; i < 1000; i++)
{
if (i % 5 == 0 || i % 3 == 0)
{
addNumber += i;
}
}
cout << addNumber << endl;
}
python 3.5.2
answer is 33165
sum(list(i for i in range(1,1000) if i%3==0 | i%5==0))
int main(void) { int i=0, sum=0; for(i=0;i<1000;i++) { if(i%3==0 || i%5== 0) sum+=i; }
printf("총합은 %d 입니다\n",sum);
return 0; }
multi_three = set([x for x in range(1000) if x%3 == 0])
multi_five = set([x for x in range(1000) if x%5 == 0])
union = multi_three.union(multi_five)
print(sum(union))
``````{.python}
sum = 0
for i in range(0,1000):
if i == 0 :
continue
if i % 3 == 0:
sum += i
elif i % 5 == 0 :
sum += i
print(sum)
public class no1 {
public static void main(String [] args) {
int sum=0;
for(int i=1 ; i<1000; i++) {
if(i%3==0 || i%5==0) {
sum += i ;
}
}
System.out.print(sum);
}
}
tic
result_val=0;
max_N=10^3;
for n=1:max_N-1
if mod(n,3)==0 || mod(n,5)==0
%disp(num2str(n));
result_val=result_val+n;
end
end
disp([' answer : ' num2str(result_val)]);
toc
public class Test5 {
public static void main(String[] args) {
int total = 0;
for(int i=1; i<1000; i++) {
if(i%3 == 0 || i%5 == 0){
total+=i;
}
}
System.out.println(total);
}
}
li = []
for i in range(1,1000):
if i % 3 == 0 or i % 5 == 0:
li.append(i)
sum(li)
전형적인 입문자 수준 풀이입니다.
>>> for i in list(range(1,1000)):
... if i % 3 == 0 or i % 5 == 0:
... answer += i
...
>>> print(answer)
233201
입문자가 Python 3로 작성했습니다.
sum = 0
for i in range(1, 1000):
if (i % 3 == 0) or (i % 5 == 0):
sum += i
print(sum)
#include <iostream>
using namespace std;
/* http://codingdojang.com/scode/350
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의 배수의 총합을 구하라.
정답은 위 사이트에서 직접 확인 가능합니다.
*/
int main() {
int sum = 0;
for (int i = 0; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0) {
sum += i;
}
}
cout << sum << endl;
system("pause");
return 0;
}
1000 이하의 자연수 중에 완전수 중에 3,5의 배수를 더하라는 줄 알고 한참을 고민했네요
a = sum([x for x in range(1,1000) if x % 3 == 0 or x % 5 == 0])
print("%s" % a)
public class problem0101 {
public static void main(String[] args) {
int result = 0;
for(int x = 1; x < 1000; x++) {
if(x % 3 == 0 || x % 5 == 0) {
result = result + x;
}
}
System.out.println(result);
}
} for문을 돌려 1부터 1000미만의 숫자들 중 ||(or)을 이용해 3 or 5의 배수의 총합을 구했습니다.
public class GetMultiples {
public static void main(String[] args){
int result = 0;
for(int i=1; i<1000; i++){
if( i%3 == 0 ){
if(i%5 != 0 ){
result+= i;
}
}
if( i%5 ==0 ){
result += i;
}
}
System.out.println(result);
}
}
/****************************************************************************
10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다.
1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
****************************************************************************/
#include<stdio.h>
int Get_Mul(int input,int max)
{
int mul,i=1,result = 0;
while(1)
{
mul = input*i;
if(mul<1000)
result += mul;
else
break;
i++;
}
return result;
}
int main(void)
{
int a,b,result=0;
scanf("%d %d",&a,&b);
result += Get_Mul(a,1000);
result += Get_Mul(b,1000);
result -= Get_Mul(a*b,1000);
printf("%d",result);
}
#include <iostream>
int main()
{
int sum = 0;
int i = 0;
for(i = 0, sum = 0; i != 1000; i++)
if((i % 3 == 0) || (i % 5 == 0)) sum += i;
std::cout << sum << std::endl;
return sum;
}
public static void main(String [] args) {
int sum=0;
for(int i=1 ; i<1000 ; i++) {
if(i%3==0 || i%5==0) {
sum = sum + i;
}
}
System.out.print(sum);
}
int nInput = 1000;
int nDevidCount3 = (nInput-1) /3;
int nDevidCount5 = (nInput-1) /5;
int nDuplicateCount = nDevidCount3 / 5;
int nResult = nDevidCount3/2*(nDevidCount3+1)
+nDevidCount5/2*(nDevidCount5+1)
-nDuplicateCount /2*(nDuplicateCount +1) ;
#include <stdio.h>
int main()
{
int j = 0;
for (int i = 1; i < 1000; i++)
{
if (i % 3 == 0 || i % 5 == 0) // i 를 3 또는 5 로 나눈 나머지 (i % 3, i % 5) 가 0 일 때 (== 0)
{
j = j + i;
}
}
printf("1000 미만의 3 또는 5의 배수의 합 %d, \n ", j);
return 0;
}
public class Q5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int i=0,result=0;
for(i=0; i<1000; i++) {
if(i%3==0 || i%5==0){ // 3의약수 또는 5의약수 는 더하고
result += i;
}
else if(i%3==0 && i%5==0) { // 3과5의 약수는 빼고
result -= i;
}
}
System.out.println(result);
}
}
답 : 233168
간단하게..풀어보았습니다
#include <iostream>
using namespace std;
int main(void)
{
int i;
int sum = 0;
for (i = 0; i < 1000; i++)
{
if (i % 3 == 0 || i % 5 == 0)
sum += i;
}
cout << "sum : " << sum << endl;
return 0;
}
이렇게 제출하면 되나용??
R입니다
for, if 등으로 만든, 형식만 R일뿐 R의 특징은 그닥 없는 코드네요 >_<
a <- seq(1,1000-1,1)
s <- 0
for(n in a){
if(n%%3==0 || n%%5==0){
s<-s+n
}
}
print(s)
답: 233168
eval("+".join(str(x) for x in range(1, 1000) if not x%3 or not x%5))
#이것도 되겠네요.
sum(x for x in range(1, 1000) if not x%3 or not x%5)
public class day1 { private static int sum;
public static void main(String[] args) {
for (int i = 0; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0){
System.out.println(sum+=i);
}
}
}
}
# Multiple of 3 and 5
sum = 0
for i in range(1, 1000):
if i % 3==0 or i % 5==0:
sum += i
print(sum)
or 연산자를 사용해서 3 또는 5로 나눠지는 정수들을 찾았고, sum이라고 명명한 변수에 더했습니다.
#include <iostream>
using namespace std;
void main()
{
int sum = 0;
for (int i = 1; i < 1000; i++)
{
if (i % 3 == 0)
{
sum += i;
}
else if (i % 5 == 0)
{
sum += i;
}
}
}
def multiplier(n): return sum(list(x for x in range(1,n) if x%3==0 or x%5==0))
print(multiplier(10))
print(multiplier(1000))
package training;
import java.util.ArrayList;
public class MultipleOf3And5 {
public static void main(String[] args) {
ArrayList<Integer> arr = new ArrayList();
int iSum = 0;
for(int i=1;i<1000;i++){
if(i%3 == 0 || i%5 == 0){
arr.add(i);
iSum += i;
}
}
System.out.println(arr);
System.out.println(iSum);
}
}
private static int multiples(int n){
int sum = 0;
for(int i=1; i<n; i++){
if(i%3==0 || i%5==0){
sum += i;
}
}
return sum;
}
int sum1 = 0; // 3의 배수 합 int sum2 = 0; // 5의 배수 합 int sum3 = 0; // 공통 배수의 합
for (int i = 0; i < 1000; i++)
{
if (i % 3 == 0)
{
sum1 += i;
}
if (i % 5 == 0)
{
sum2 += i;
}
if (i % 15 == 0)
{
sum3 += i;
}
}
int result = 0;
result = sum1 + sum2 - sum3;
cout << "답 : "<<result << endl;
def finder (a) :
number=[]
i = 1
b = a
while b < 1000 :
number.append(b)
i += 1
b = a*i
return number[:]
real = finder(3) + finder(5)
delete = finder(15)
answer = sum(real) - sum(delete)
print(answer)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace practice2
{
class proj1
{
public void Run()
{
int sum = 0;
for (int num = 0; num < 1000; num++)
{
if (num % 3 == 0 || num % 5 == 0)
sum += num;
}
Console.WriteLine(sum);
}
}
}
233168 나왔습니다.
#include <stdio.h>
void main() {
int limit = 1000;
int i, sum=0;
for(i=0;i<=limit;i++)
if(i%3==0 || i%5==0)
sum+=i;
printf("sum : %d\n",sum);
}
c로 해결했습니다
total=0
for i in range(1001):
lst=[3,5]
for j in range(2):
a=i%lst[j]
if a==0:
print('3과 5의 배수는 : ',i)
total+=i
continue
print(total)
Python 3.4
def find_mul_sum(l,m,n):
result = [i for i in range(n) if i%l==0 or i%m==0]
return sum(result)
print(find_mul_sum(3,5,1000))
Java
class Practice01 {
public static void main(String[] args) {
int[] a = new int[1000];
int i;
int sum = 0;
for( i = 0 ; i<a.length ; i++){
a[i] += i;
if(a[i] %3 ==0 || a[i] %5==0){
System.out.println(a[i]);
sum += a[i];
}
} System.out.println(i+"미만 3과 5의 총합"+sum);
}
}
# coding=utf-8
# 코딩도장 2017.04.23
# Notepad++ 7.3.3 Windows 32bits
# Python 3.6.1 Windows 32bits
# Windows 10.0.14393 32bits
#
# Multiples of 3 and 5
# 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.
#
# Result = 233168
N = 1000
result = 0;
for i in range(1, N):
if ((i % 3) == 0) or ((i % 5) == 0):
result = result + i
print(result)
public class ExampleTest {
public static void main(String[] args) {
int sum = 0;
for(int a = 1; a < 1000; a++) {
if(a % 3 == 0 || a % 5 == 0) {
sum += a;
}
}
System.out.println(sum);
}
}
int sum = 0;
for (int i = 1; i < 1000; i++){
if (i%3==0 || i%5==0){
sum = sum + i;
}
}
print(sum);
해답 : 233168
public static int Print(int Max) { int sums = 0;
for (int i = 1; i < Max; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
sums += i;
}
}
return sums;
}
public class Multies {
public static void main(String[] args) {
// 3과 5의 멀티 값들의 합 <1000 이하
int sum=0;
for (int i = 0; i < 1000; i++) {
if ( i%3 == 0 ) {
sum += i;
System.out.println(i);
}
if ( i%5 == 0 ) {
sum += i;
System.out.println(i);
}
}
System.out.println(sum);
}
}
multiple_list = []
N = int(input("Input limit number. > "))
for a in range(N+1):
if a % 3 == 0 or a % 5 == 0:
multiple_list.append(a)
total = 0
for number in multiple_list:
total = total + number
print (total)
정말 수학적인 방법으로 풀엇내요 ㅋㅋㅋ
int N = 1000, sum3=0, sum5=0, sum15=0, sum=0;
int n = N-1;
for(int i=1; i<=n/3; i=i+1){
sum3 = sum3 + 3*i;
}
for(int j=1; j<=n/5; j=j+1){
sum5 = sum5 + 5*j;
}
for(int l=1; l<=n/15; l=l+1){
sum15 = sum15 + 15*l;
}
System.out.println(sum3);
System.out.println(sum5);
System.out.println(sum15);
sum = sum3 + sum5 - sum15;
System.out.println("The sum is: " + sum);
def mul_sum(x,n):
if n == 0:
return 0
else:
return n*(n+1)*x/2
def threefive(n):
return mul_sum(3, (n-1)//3) + mul_sum(5, (n-1)//5) - mul_sum(15, (n-1)//15)
threefive(10)
threefive(1000)
음.. n//3 으로 몇 개 들어가는지 구하고, 공차수열 합 공식으로 더했습니다..!
three_list = [] five_list = []
for threes in range(0, 1000, 3): three_list.append(threes)
for fives in range(0, 1000, 5): five_list.append(fives)
three_set = set(three_list) five_set = set(five_list) union_set = three_set|five_set
print union_set
sum=0 for i in union_set: sum += i
print sum
파이썬의 set의 합집합을 이용
int sum = 0; for(int i =1 ; i < 1000; i++) { if (i % 3 == 0 || i % 5 == 0) { sum += i; } }
System.out.println(sum);
`A=[]
for x in range (1,1001,1) :
A= A + [ x ]
print(A[0])
for i in range (0,1000,1):
if (A[i]%3 != 0 and A[i]%5 != 0):
A[i]=0
else :
pass
print(sum(A))
(C언어 작성)
#include <stdio.h>
void main()
{
int sum = 0;
for (int i = 1; i < 1000; i++)
{
if ((i % 3 == 0) || (i % 5 == 0))
sum += i;
}
printf("총합 : %d\n", sum);
}
#include <stdio.h>
void main() {
int sum = 0;
int max = 1000;
for (int i = 1; i < max; i++) {
if (i % 3 == 0) sum += i;
else if (i % 5 == 0) sum += i;
}
printf("%d 미만의 자연수에서 3,5 배수의 총합은 %d", max, sum);
}
2. 1부터 반복문 실행
3. 2에서 한번의 시행에 대하여
3-1. i가 3으로 나누어 떨어지면 sum 에 i를 더함
3-2. i가 5로 나누어 떨어지면 sum 에 i를 더함 ( else if 문을 사용하여 15의 배수가 나오면 3-1에서 시행후, 3-2에서는 시행하지 않음)
4. sum 출력 (233168)
num1=int(3)
num2=int(5)
result1=0
result2=0
result3=0
for i in range(1,334):
result1+=num1*i
for x in range(1,200):
result2+=num2*x
for k in range(1,67):
result3+=(num1*num2)*k
print(result1+result2-result3)
```
def multi(n,*args):
l1 = [i for i in range(1,n)]
l2 = []
for i in args:
for j in l1:
if j % i ==0:
l2.append(j)
l2 = list(set(l2))
return sum(l2)
multi(10,3,5)
# 23
multi(10,3,5,6)
# 23
multi(10,3,5,7)
# 30
3,5 뿐만 아니라 다른 숫자를 더 넣어도 됩니다.
import javax.management.Query;
public class Q5 {
public static void main(String[] args) {
int question = 1000;
int answer = 0;
for (int i = 1; i < question; i++) {
if (i % 3 == 0 || i % 5 == 0) {
System.out.println(i);
answer = answer+i;
}
// System.out.println(" "+answer);
}
System.out.println("--------- 코딩도장 5번 문제 ---------");
System.out.print("1000 미만의 자연수에서 ");
System.out.println("3, 5의 배수들의 총합은");
System.out.println(answer + " 입니다.");
}
}
function f(n) {
sum = 0;
for(var i = 0; i < n; i++) {
if(i % 3 === 0 || i % 5 === 0) {
sum += i;
}
}
return sum;
}
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);
}
def solution(N):
return sum([i for i in range(1,N) if not i % 3 or not i % 5])
if __name__ == "__main__":
assert solution(10) == 23
assert solution(5) == 3
파이썬 리스트 컴프리핸션을 활용했습니다.
b3 = set([3*i for i in range (1, 333)])
b5 = set([5*i for i in range (1, 199)])
b35 = b3 | b5
s = sum(b35)
print(s)
오늘건 좀 쉽네요. Lv.1이어서 그런가?
c로 풀이
#include <stdio.h>
int main(void)
{
int i,sum=0;
for(i=1;i<1000;i++) if(((i%3)==0)||((i%5)==0)) sum+=i;
printf("%d",sum);
return 0;
}
#include<iostream>
using namespace std;
int summing(int max, int num){
int sum = 0;
for (int i = 0; i * num < max; i++){
sum += i * num;
}
return sum;
}
int main(){
cout << summing(1000,3) + summing(1000,5) - summing(1000,15);
return 0;
}
// 오일러 1번 - C#
using System;
namespace ILoveEuler
{
class Program
{
static void Main(string[] args)
{
int sum = 0;
for (int i = 0; i < 1000; i++)
if (i % 3 == 0 || i % 5 == 0)
sum += i;
Console.WriteLine(sum);
// 답은 233168
}
}
}
#python
numbers = range(0,1000)
result = 0
for number in numbers:
if number % 3==0 or number%5==0:
result += number
print(result)
t = 100
a = 3
b = 5
def fact(num):
sum = 0
for i in range(1,num+1):
sum += i
return sum
def main():
print ((a*fact(t//a)) + (b*fact(t//b)) - (a*b*fact(t//(a*b))))
if __name__ == '__main__':
main()
let num = 0;
let number = () => {
for(let i = 3; i < 1000; i++){
if(i%3==0 || i%5==0){
num += i;
}
}
return num;
}
console.log(number());
javascript ES6
1.
var array = Array.from({length: 1000}, (v, k) => k + 1);
var filter = n => n % 3 === 0 || n % 5 === 0;
var add = (a, b) => a + b;
var sum = array.filter(filter).reduce(add);
console.log(sum);
1-1. (1) 을 줄인 것
console.log(Array.from(Array(1000),(_,i)=>i+1).filter(n=>!(n%3)||!(n%5)).reduce((a,b)=>a+b));
2.
var threeSet = Array.from({length: 333}, (v, k) => (k + 1) * 3);
var fiveSet = Array.from({length: 200}, (v, k) => (k + 1) * 5);
var sumSet = Array.from(new Set(threeSet.concat(fiveSet)));
var sum = sumSet.reduce((a, b) => a + b);
console.log(sum);
a=input("natural number= ")
total=0
for i in range(int(a)):
if (i%3 == 0 or i%5 == 0):
total+=i
print("Sum is %d"%total)
using namespace std;
int ofunc(int n) { int result = 0; for (int i = 1; i < n; i++) { if (i % 3==0 || i % 5==0) result += i; } return result; } int main() { cout <<ofunc(1000)<<endl; return 0;
}
public class Multiplesof3and5 {
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);
}
}
int main(){
int i;
int result=0;
for(i=1;i<1000;i++){
if(i%3==0 || i%5==0){
result+=i;
}
}
printf("%d\n",result);
return 0;
}
아주 쉽네요
num = []
for member in range(1,1000):
if member % 3 == 0 :
num.append(member)
elif member % 5 == 0 :
num.append(member)
print(sum(num))
int add = 0; for(int i=0; i<1000; i++) { if(i%3 == 0 || i%5 == 0) { add += i; } } Log.v("", "kdw vlaue:"+add);
다른 사람이 한거 참고 많이 했는데 맞을려나?
public class test
{
public static void main(String[] args)
{
int[] nums = new int[1000];
int result = 0;
for(int i = 0; i < 1000; i++)
{
nums[i] = 0;
if(i % 3 == 0 || i % 5 == 0)
nums[i] = i;
}
for(int i = 0; i < 1000; i++)
{
result += nums[i];
}
System.out.println(result);
}
}
def get_gcd(u, v): # 최대공약수
if v == 0:
return u
return get_gcd(v, u % v)
def get_lcm(u, v): # 최소공배수
lcm = int(u * v / get_gcd(u, v))
return lcm
def get_sequence_sum(n, d): # 등차 수열의 합
last = int(n / d) * d
q = int(n / d)
sequence_sum = q * (last + d) / 2
return int(sequence_sum)
a = 3
b = 5
n = 1000
lcm = get_lcm(a, b)
print(get_sequence_sum(n - 1, a) + get_sequence_sum(n - 1, b) - get_sequence_sum(n - 1, lcm))
최근 공부한 Python을 연습하는 차원에서 풀어봅니다.
먼저 Brute-force 방식으로 풀어봤습니다. 단순히 2부터 N-1까지 순회하면서 3이나 5로 나누어 떨어지는 값을 list로 묶은 후, 전체 합을 구하는 방식입니다. 순회하는 부분이 있으므로 O(n) time-complexity가 걸립니다.
def solve(n):
return sum([num for num in range(2, n) if num % 3 is 0 or num % 5 is 0])
아래처럼 list로 저장해두는 메모리 낭비를 줄일 수 있으나, time-complexity는 동일합니다.
def solve(n):
sum = 0
for num in range(2, n):
if num % 3 is 0 or num % 5 is 0:
sum += num
return sum
여기서 등차수열을 이용하면 O(1) time-complexity로 줄일 수 있습니다. 3과 5의 배수 총합을 구하려면, 3의 배수 총합과 5의 배수 총합을 더한 후에 3,5에서 중복되는 배수 총합을 빼주면 됩니다. sum_of_multiples는 특정 수의 배수 총합을 구하는 함수로 등차수열을 이용합니다.
def solve(n):
def sum_of_multiples(k, max):
n = int((max - 1) / k)
return k * int(n * (n + 1) / 2)
return sum_of_multiples(3, n) + sum_of_multiples(5, n) - sum_of_multiples(15, n)
#include <iostream>
using namespace std;
const static int NUM = 1000
int main()
{
int result = 0;
for (int i = 0; i < NUM; i++)
{
if (i%3 == 0 || i%5 == 0)
result += i;
}
cout << result << endl;
return 0;
}
package Fibo;
public class ntr { int total, sum =0; int i =1;
public void NTR(){
for(i=1; i<1000; i++){
if(i%3==0 || i%5==0){
sum +=i;
total=sum;
}
}
System.out.println("1000미만 3,5배수 총합은"+total);
}
public class Ex1 {
static int sum = 0;
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i=0; i< 1000; i++) {
if(i%3 == 0 || i%5 == 0) {
sum += i;
System.out.println(sum);
}
}
}
}
common = function(num, start, end)
{
all_n = seq(1:num)
number = all_n[ifelse(all_n %% start == 0 | all_n %% end == 0, T, F)]
return(sum(number))
}
3과 5만 구하는 것보다는 다른 숫자도 구할 수 있게끔 일반화 시켜봤습니다. 단점은 두개의 숫자만 확인할 수 있다는 점입니다. 혹시 두 개의 숫자 뿐만 아니라 몇 개의 숫자든 상관없이 구할 수 있는 코드로 일반화 하기에 다른 방법이 있을까요?
/*
프로그램 내용 : 10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다.
1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
작성한 날짜 : 2017년 7월 9일
*/
#include <stdio.h>
#define NUM 1000
int main()
{
int sum = 0;
for (int i = 1; i < NUM; i++) //정해진 수까지반복
{
if (i % 3 == 0 || i % 5 == 0) //3의 배수와 5의 배수 걸러줌
sum += i;
}
printf("%d 미만의 자연수에서 3,5의 배수의 총합은 %d 입니다.\n", NUM, sum);
return 0;
}
233168
public class Ex6 {
private static final int MAX = 1000;
public static void main(String[] args) {
int sum = 0;
for ( int i = 1; i < MAX; i++){
if ( i % 3 == 0 || i % 5 == 0){
sum += i;
}
}
System.out.println(sum);
}
}
public class Multiple {
public static void main(String[] args){
int sum = 0; // 3과 5의 배수를 더해줄 int형의 sum을 선언하고 0으로 초기화합니다
for(int i = 0; i < 1000; i++)
{
if( i % 3 == 0)
{
sum = sum + i;
}
else if ( i % 5 == 0)
{
sum = sum + i;
}
} /*/ for문을 통해 더해줍니다. 중첩 if문을 통해 3일 경우와 5일 경우로 나누어 계산합니다.
이 떄 3과 5의 최소공배수 15에 대한 처리는 하지않았습니다. 15도 3의 배수이기 때문에
첫번째 if문의 조건식인 ( i % 3 == 0)에서 처리한 후 그 다음(16)으로 넘어가기 때문입니다.
감사합니다 ^^
/*/
System.out.print(sum);
}
}
C언어로 풀었습니다. 근데 메뉴에 C언어 선택 아이템이 없네요 ??
int main(int argc, const char * argv[]) {
// insert code here...
int result = 0;
for(int i=1; i<1000; i++) {
if ( i%3 == 0 || i%5 == 0 ) {
result += i;
}
}
printf("%d\n", result);
return 0;
}
object MultiplesOf3And5 {
def main(args: Array[String]): Unit =
print(((1 to 999).filter(x => x % 3 == 0 || x % 5 == 0)).sum)
}
/*
Scala Interpreter에서는 다음과 같이 써도 됩니다.
print(((1 to 999).filter(x => x % 3 == 0 || x % 5 == 0)).sum)
*/
Scala 최근에 배우기 시작했는데 이런부분에서는 파이썬보다 강력할 것 같은데? 라는 생각이 드네요 ㄷㄷ
package java_tutorial;
public class Multiplesof3and5 {
public static void main(String[] args) {
int sum = 0;
for(int i = 1; i< 1000; i++)
{
if(i%3==0 || i%5==0)
{
sum += i;
}
}
}
}
#include<iostream>
using namespace std;
#define RAN 1000
int GetSum(int num1, int num2){
int res=0;
int num;
for(num=0; num<RAN; num++)
if( num % num1 == 0 || num % num2 == 0)
res+=num;
return res;
}
int main(void){
cout<<GetSum(3, 5)<<endl;
return 0;
}
#include<stdio.h>
int main(void)
{
int i;
int total = 0;
for (i = 1; i < 1000; i++)
{
if (i % 3 == 0)
total += i;
else if (i % 5 == 0)
total += i;
}
printf("%d", total);
return 0;
}
#include <stdio.h>
#define MAX 1000
//c로 작성
int main() {
int i, sum = 0;
for (i = 1; i < MAX; i++) {
if (i % 3 == 0 || i % 5 == 0)
{
sum += i;
}
}
printf("%d\n", sum);
}
#include <stdio.h>
void main()
{
int iParameter_1 = 3;
int iParameter_2 = 5;
int iLimitNumber = 1000;
int iTotalSum = 0;
int iLoopCount = 0;
int iIncreaseNumber = iParameter_1 * ++iLoopCount;
while(iIncreaseNumber < iLimitNumber)
{
iTotalSum += iIncreaseNumber;
iIncreaseNumber = iParameter_1 * ++iLoopCount;
}
iLoopCount = 0;
iIncreaseNumber = iParameter_2 * ++iLoopCount;
while (iIncreaseNumber < iLimitNumber)
{
if(iIncreaseNumber % iParameter_1 != 0)
iTotalSum += iIncreaseNumber;
iIncreaseNumber = iParameter_2 * ++iLoopCount;
}
printf("%d\n", iTotalSum);
}
number = int(input("Enter a number : ")) # get the object number
n = 0 # start from zero
for i in range(1, number + 1) :
if i % 3 == 0 or i % 5 == 0 : # the condition
n += i
print("The sum is :", n) # the result
int sum = 0;
for (int i = 1; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0) {
sum += i;
}
}
System.out.println(sum);
#include <iostream>
using namespace std;
void main() {
int sum = 0;
for (int i = 0; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0)
sum += i;
}
cout << "1000미만의 자연수에서 3,5의 배수의 총합 = " << sum;
}
여러 숫자의 공배수를 구하는 코딩을 짜 봤습니다. R로 작성했습니다.
common = function(num, x) {
aa<-data.frame(rep(0,num))
for(i in 1:length(x)) {
aa[,i] <- ((1:num)%%x[i]==0)
}
result<-(1:num)[apply(aa,1,all)]
return(result)
}
common(1000,c(3,5))
def number(user_num): i = 0 count = 0 while i < user_num: if i % 3 == 0: count = count + i elif i % 5 == 0: count = count + i i = i + 1 return count
print(number(1000))
#include <stdio.h>
int data;
int i,j;
int cnt3=0;
int cnt5=0;
int cnt15=0;
int total3=0;
int total5=0;
int total15=0;
int result;
int res15[1000];
int res5[1000];
int res3[1000];
int main(void)
{
scanf("%d",&data);
//int res15[data];
//int res5[data];
//int res3[data];
for(i=3; i<data; i=i+3)
{
res3[cnt3] = i;
cnt3++;
}
for(i=5; i<data; i=i+5)
{
res5[cnt5] = i;
cnt5++;
}
for(i=15; i<data; i=i+15)
{
res15[cnt5] = i;
cnt15++;
}
for(i=0;i<cnt3;i++)
{
total3 += res3[i];
}
for(i=0;i<cnt5;i++)
{
total5 += res5[i];
}
for(i=0;i<cnt15;i++)
{
total15 += res15[i];
}
result = total3 + total5 - total15;
printf("result : %d",result);
}
function sumOfMultiples(below){
function factorial(number) {
var product = 0;
for (var i = number; i >= 1 ; --i )
{
product += i;
}```{.javascript}
function sumOfMultiples(below){
function factorial(number) {
var product = 0;
for (var i = number; i >= 1 ; --i )
{
product += i;
}
return product;
}
function calc(number){ return factorial(parseInt((below-1)/number, 10))*number; }
return calc(3)+calc(5)-calc(15)
}
return product;
}
var a1 = factorial(parseInt((below-1)/3, 10))*3
, a2 = factorial(parseInt((below-1)/5, 10))*5
, a3 = factorial(parseInt((below-1)/15, 10))*15;
return a1+a2-a3
}```{.javascript}
function sumOfMultiples(below){
function factorial(number) {
var product = 0;
for (var i = number; i >= 1 ; --i )
{
product += i;
}
return product;
}
var a1 = factorial(parseInt((below-1)/3, 10))*3
, a2 = factorial(parseInt((below-1)/5, 10))*5
, a3 = factorial(parseInt((below-1)/15, 10))*15;
return a1+a2-a3
}
var loop=0;
function sumOfMultiples(below){
function factorial(number) {
var product = 0;
for (var i = number; i >= 1 ; --i )
{
product += i;
loop++;
}
return product;
}
function calc(number){
return factorial(parseInt((below-1)/number, 10))*number;
}
return calc(3)+calc(5)-calc(15)
}
// 1000을 넣었을 때 598번의 loop가 도네요.
//
소스가 같아서 의미가 없네요. 죄송합니다.
print(sum(set([x for x in range(0, 1000, 3)]) | set([x for x in range(0, 1000, 5)])))
public class Main {
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);
}
}
int i, sum = 0;
for(i=1;i<1000;i++)
{
if (i%3 == 0 || i%5 == 0)
{
sum += i;
}
}
System.out.println(sum);
c로 작성하였습니다.
#include <stdio.h>
int func(int n, int m) {
//n의 배수의, m까지의 총합구하기
int i, sum=0;
for (i = n; i < m; i = i + n) {
sum = sum + i;
}
return sum;
}
int main() {
//3의 배수합 + 5의 배수합 - 15배수의 합 출력
printf("%d\n", func(3, 1000) + func(5, 1000) - func(15, 1000));
return 0;
}
public class Example5 {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i < 1000; i++) {
if (i % 15 == 0) {
sum += i;
} else if (i % 3 == 0) {
sum += i;
} else if (i % 5 == 0) {
sum += i;
}
}
System.out.println(sum);
}
}
// golang 1.9
package main
import "fmt"
func main() {
sum := 0
for i := 1; i < 1000; i++ {
if i%3 == 0 || i%5 == 0 {
sum += i
}
}
fmt.Println(sum)
}
public class Ex {
public static void main(String[] args) {
int sum = 0;
for(int i=1;i<1000;i++) {
if(i%3==0 || i%5==0) {
sum += i;
}
}
System.out.println(sum);
}
}
233168
swift
func main(){
print(
(1..<1000).reduce(0) {$0 + ($1 % 3 == 0 || $1 % 5 == 0 ? $1 : 0 ) }
)
}
233168
sum = 0
# 1 부터 1000 미만의 자연수 중에서 3 이나 5로 나누어 떨어지는 수들을 계속 합해 나간다.
for i in range(1000):
if i % 3 == 0 or i % 5 == 0:
sum += i
print(sum)
package org.Solve_2;
import java.util.ArrayList;
public class Solve_2_easy { public static void main(String[] args){ System.out.println("hello"); int result = 0; num test1 = new num(); test1.main(); for (int q =0; q <test1.a.size(); q++){ if ((int)test1.a.get(q)%3==0){ result = result + (int)test1.a.get(q); } }
for (int q =0; q <test1.a.size(); q++){
if ((int)test1.a.get(q)%5==0){
result = result + (int)test1.a.get(q);
}
}
for (int q =0; q <test1.a.size(); q++){
if ((int)test1.a.get(q)%15==0){
result = result - (int)test1.a.get(q);
}
}
System.out.println(result);
}
}
class num{ ArrayList a = new ArrayList(); public void main(){ for (int t = 0; t <1000; t ++){ a.add(t); } } }
void multi() {
int sum=0;
for (int i = 1; i < 1000; i++)
{
if(i%3==0) sum+=i;
else if(i%5==0) sum+=i;
}
System.out.println(sum);
}
#3의 배수 list
three_list=[]
i=1
while i*3<1000:
three_list.append(i*3)
i=i+1
#5의 배수 list
five_list=[]
i=1
while i*5<1000:
five_list.append(i*5)
i=i+1
#three_list 에서 5의 배수 값 빼기
for five_list_element in five_list:
if five_list_element in three_list:
three_list.remove(five_list_element)
#3,5의 배수 list
all_list = three_list+five_list
all_list.sort()
#3,5의 배수 총합
sum_multiples =sum(all_list)
print(sum_multiples)
# 3, 5 multiples
def serial_sum ( start, end):
total = (start + end)*(end-start+1)/2
return (total)
def multiple_sum(max_number, divide):
n = (max_number-1)//divide
total = serial_sum(1,n) * divide
return (total)
def bi_multiple_sum (divide1, divide2, max_number) :
total = multiple_sum(max_number, divide1) +multiple_sum(max_number, divide2) - multiple_sum(max_number, divide1*divide2)
return (total)
total = bi_multiple_sum(3,5,10000000)
print ( total)
#include <stdio.h>
int main(void) {
int i, sum=0;
for (i=1;i<1000;i++) {
if (i%3==0 || i%5==0)
sum = sum + i ;
}
printf("sum= %d",sum);
return 0;
}
i=0
total =0
while i<1000:
if i%3==0:
total+=i
i+=1
elif i%5==0:
total+=i
i+=1
else:
i+=1
print(total)
int main(void)
{
int i = 0, sum = 0;
for (i = 0; i < 1000; i++)
{
if (i % 3 == 0 || i % 5 == 0)
sum += i;
}
printf("총합은 %d 입니다\n", sum);
return 0;
}
result = 0
for num in range(1,1000):
if 0 == (num % 3): result += num
elif 0 == (num %5 ): result += num
def calculate(number):
result = 0
i = 1
while i < number:
if i % 3 == 0 or i % 5 == 0 :
result += i
i += 1
print(result)
calculate(1000)
### 풀어서 쓴 코드
sum = 0
for i in range(1000):
if i % 3 ==0 or i%5 == 0:
sum += i
print(sum)
### Python List Comprehension으로 간략화 코드
sum([x for x in range(1000) if x%3 ==0 or x%5 ==0])
package codingdojang;
public class ex5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum = 0;
for(int i=0; i<1000; i++) {
if(i%3 == 0 || i%5 == 0) {
sum += i;
}
}
System.out.println(sum);
}
}
private static int sum(int end) { int result = 0;
for (int i = 1; i < end; i++) {
if (i % 3 == 0 || i % 5 == 0) {
result += i;
}
}
return result;
}
public static void main(String args[]) {
System.out.println("정답 :" + sum(1000));
}
```
package problem.Korea.codingdojang;
import java.util.Scanner;
public class Multiplesof3and5 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int input = Integer.parseInt(sc.next()) - 1; // 미만 이므로 1을 뺀다
int result = 0, i = 0;
// + 3 5 의 배수
// - 15 의 배수
// 3의 배수 더하기
for(i=1; i<=input/3; i++) {
result += 3*i;
}
// 5의 배수 더하기
for(i=1; i<=input/5; i++) {
result += 5*i;
}
// 15의 배수 빼기
for(i=1; i<input/15; i++) {
result -= 15*i;
}
System.out.println(result);
}
}
#include <stdio.h>
int main()
{
int i, j;
int sum = 0;
for (i = 1; i < 1000; i++) {
if (i % 3 == 0 || i%5 == 0)
sum = sum + i;
}
printf("%d\n", sum);
return 0;
}
package java_tutorials;
public class ex1 {
public static void main(String[] args) {
int a = 0;
for(int i=0; i<1000; i++) {
if(i%3 == 0 || i%5 == 0)
a+=i;
}
System.out.println("sum = " + a);
}
}
total = 0
for i in range(1, 1000):
if i % 3 != 0 and i % 5 != 0:
continue
total += i
print(total)
Python입니다. 그냥 아주 간단하게 해 봤습니다. 정답인지 아닌지는 모르겠습니다.
public class No23 {
public static void main(String[] args) {
int i, sum = 0;
for (i = 1; i < 1000; i++) {
if((i % 3 == 0) || (i % 5 == 0)) {
sum += i;
}
else {
continue;
}
}
System.out.println(sum);
}
}
#include <stdio.h>
int main(void){
int sum=0;
for(int i=1;i<1000;i++){
if(i%3==0)
sum+=i;
else if(i%5==0)
sum+=i;
}
printf("%d ",sum);
}
C로 풀었습니다.
import java.util.Scanner;
public class level1Multiple3and5 {
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);
}
}
}
int sum = 0;
for(int i=1;i<=1000;i++) {
if ( i % 15 == 0)
sum += i;
else if(i % 3 == 0)
sum += i;
else if(i % 5 == 0)
sum += i;
}
printf("%d ", sum);
def multiple(): sum = 0 for n in range(1000): if n % 3 == 0 | n % 5 == 0: sum += n return sum
print(multiple)
def multiple():
sum = 0
for n in range(1000):
if n % 3 == 0 | n % 5 == 0:
sum += n
return sum
print(multiple)
#include <stdio.h>
int main(void) {
int sum = 0;
for (int i = 1; i<=1000; i++){
if(i % 3 == 0 || i % 5 == 0) {
sum += i;
}
}
printf("%d",sum);
return 0;
}
public class Multiple3and5 {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0)
sum += i;
}
System.out.println(sum);
}
}
```package mgj.test.java;
public class Study1 {
public static void main(String[] args) {
int a = 3;
int b = 5;
int totalA = 0;
int totalB = 0;
for(int n=1; n<334; n++) {
int an = a*n;
totalA += an;
System.out.println(totalA);
}
for(int n=1; n<200; n++) {
int bn = b*n;
totalB += bn;
System.out.println(totalB);
}
int total = totalA+totalB;
System.out.println("결과값 :"+total);
}
}
public static int multipleOf3and5(int number){
int result = 0;
for(int i = 3; i <number; i++){
if(i % 3 == 0)
result += i;
else if(i % 5 == 0)
result += i;
}
return result;
}
#include <iostream>
using namespace std;
void main()
{
int sum = 0;
for(int i = 0 ; i < 1000 ; i++) if (i % 3 == 0 || i % 5 == 0) sum += i;
cout << "합 : " << sum << endl;
}
a = 3
b = 5
c = 15
total_a = 0
total_b = 0
total_c = 0
while 1000 > a:
total_a = total_a + a
a = a + 3
while 1000 > b:
total_b = total_b + b
b = b + 5
while 1000 > c:
total_c = total_c + c
c = c + 15
print("결과 값은 %d" % (total_a + total_b - total_c))
답 : 233168
# PROBLEM NUMBER 1
def sum_multiples(rang, a, b):
multiples = [] # 배수를 채울 빈 리스트
for t in range(1, rang): # 1에서rang-1까지
if t%a == 0: # 첫번째 수의 배수면
multiples.append(t)
if t%b == 0: # 두번째 수의 배수면
multiples.append(t)
multiples = set(multiples) # 집합으로 만들어 공배수 제거
return sum(multiples)
print(sum_multiples(1000, 3, 5))
집합으로 풀었는데 내장리스트로 풀으신 답들도 보이네요 앞으론 그런 쪽으로 짤 수 있도록 해야겠습니다. 많이 배워갑니다 ^
#include <stdio.h>
int main(void)
{
int sum = 0;
for (int i = 1; i <= 1000; i++)
{
if (i % 15 == 0)
{
printf("%d ", i);
sum += i;
}
else if (i % 3 == 0)
{
printf("%d ", i);
sum += i;
}
else if(i % 5 == 0)
{
printf("%d ", i);
sum += i;
}
if (i % 20 == 0)
printf("\n");
}
printf("\n[%d]\n", sum);
return 0;
}
저는 233168이 답 아닌거 같은데요.
1000미만의 자연수, 3과 5의 배수의 합이면 3이거나 5의 배수 합을 구하고 15배수는 빼야하지 않을 까요?
값이 중복 계산 되는거 같아서
전 좀 다르게 했습니다.
package multiplesof3and5;
public class Multiple
{
/*
* 문제:10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다.
* 1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
*/
public int multiple()
{
int j=0;
int k=0;
for(int i=0;i<1000;i++)
{
if(i%3==0||i%5==0) // 15의 배수때문에 겹친다. 방법은?
{
j+=i;
}
if(i%3==0&&i%5==0) // 15의 배수때문에 겹친다. 방법은?
{
k+=i;
}
}
System.out.println("j-k: "+(j-k));
return j-k;
}
}
C로 코딩했습니다.
#include <stdio.h>
int main()
{
int sum = 0; // 배수의 합을 저장할 변수 선언
for (int i = 1; i < 1001; i++) // 초기값 1 부터 1000 가지 반복하는 loop
{
if (i % 3 == 0 && i % 5 == 0)
{
sum += i; // &&연산자로 3,5 의 공배수
}
}
printf("%d\n", sum); // 합 출력
return 0;
}
print(sum([i for i in range(1000) if i % 3 == 0 or i % 5 == 0]))
처음에 만든 건 훨씬 길고 복잡했는데 다른 것도 풀고 다른 사람의 풀이도 보고 하다보니 결국 다른 분들 풀이랑 동일하게 수렴하게 되네요 ㄷㄷ
public test { public static void main(String[]ar) { int result =0; for(int i=0; i<1000; i++) { if(i%3==0) { result +=i; return; } if(i%5==0) { result +=i; } } } }
def cal
result = 0
for n in 1...1000
if(n % 3 == 0 || n % 5 == 0)
result += n
end
end
return result
end
puts cal
result = 0
for i in range(1000):
if(i%3==0 or i%5==0):
result+=i
print(result)
range 라는 내부함수를 사용해서 출력해 보았어요
list=[]
for i in range(1,1001):
if i%3==0 and i%5==0:
list.append(i)
elif i%3==0:
list.append(i)
elif i%5==0:
list.append(i)
else:
continue
sum=sum(list)
print(sum)
첫풀이입니당
int sum = 0;
for(int i = 1; i < 1000; i++)
{
if( int sum = 0;
for(int i = 1; i < 1000; i++)
{
if(i % 3 ==0 || i % 5 == 0)
{
sum += i;
}
}
Console.WriteLine(sum);
import java.util.Scanner;
public class Main {
public static int lcm(int a, int b){
int i=1; int j=1;
while(a*i!=b*j){
if(a*i>b*j){
j=j+1;
}
else i =i+1;
}
return a*i;
}
public static int sum(int bound){
int a = 3; int b=5;
int lcm = lcm(a,b);
int i = bound/a; int j = bound/b; int k = bound/lcm;
int s1 = i*(2*a+(i-1)*a)/2;
int s2 = j*(2*b+(j-1)*b)/2;
int s3 = k*(2*lcm+(k-1)*lcm)/2;
return s1+s2-s3;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int bound = sc.nextInt();
System.out.print(sum(bound));
sc.close();
}
}
Anaconda+Atom 한글 print에서 에러 처리방법, 가까스로 찾았네요.
import sys
import io
sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding='utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding='utf-8')
numbers = list([i for i in range(1,1000) if not(i%3) or not(i%5)])
print("1000보다 작은 3의 배수와 5의 배수는", numbers)
print("이들의 합은 %d" % sum(numbers))
total = [] for i in range(100) : if i%3 ==0 : total.append(i) elif i%5.== 0 : total.append(i) sum(total)```{.python}
```
using namespace std;
int main() { int sum = 0;
for(int i=0; i<1000; i++)
{
if(i%3 == 0 || i%5 == 0)
{
sum += i;
}
}
printf("%d\n", sum);
return 0;
}
static int multipleSum(int n){ int result =0; for(int i =1 ; i < n ; i++){ if(i%3==0 || i%5==0){ result += i; } } return result; }
n = 0
for i in range (1, 1000):
if i % 3 == 0:
n = n + i
if i % 5 == 0:
n = n + i
if i % 15 == 0:
n = n - i
print(n)
초보의 답 헤헤
#include <stdio.h>
int main(void)
{
int i, sum;
for(i=0;i<10000;i++)
{
if(i%3 == 0)
{
sum+=i;
}
if(i%5 == 0)
{
sum+=i;
}
if(i%15 == 0)
{
sum-=i;
}
}
printf("10000미만의 3과 5의 배수의 합 : %d\n", sum);
return 0;
}
```{.java}
public class Codingtest {
public static void main(String [] args) {
float hap = 0;
for(int num=1; num<1000 ; num++) {
if((num%3)==0 || (num%5)==0) {
hap+= num;
}
}
System.out.println("1000미만의 자연수에서 3,5의 배수의 총 합은?"+(int)hap);
}
}
a = int(999/3) # 3의 배수의 갯수
b = int(999/5) # 5의 배수의 갯수
c = int(999/15) # 15의 배수의 갯수
int(a*(a+1)*3/2 + b*(b+1)*5/2 - c*(c+1)*15/2) # 3의 배수의 총합 + 5의 배수의 총합 - 중복된 15의 배수의 총합
i = 1
b = 0
while i<999:
i = i+1
if i%3==0 or i%5==0:
a = i
print(a)
else:
continue
b = b + a
print(b)
int main(void){ int col=0; int sum =0; int I =0;
for(I = 0; I<1000; I++){ if(i % 3 == 0) sum += i;
else if( I % 5 ==0) sum += i;
else sum = sum;
}
I=0;
while(i<1000){ if(i % 15 ==0) sum += i;
else sum = sum;
I++;
}
}
a = []
b = 0
for i in range(1,1000):
if i % 3 == 0 or i % 5 == 0:
a.append(i)
b += i
print (a) print (" The sum is %d" %b)
int main()
{
int i;
int sum = 0;
int n = 0;
for (i = 1; i <= 1000; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
sum += i;
n++;
printf("%3d->%4d,", n, i);
}
else
continue;
}
printf("\nsum : %d, Number of integer: %d \n", sum, n);
getchar();
return 0;
}
def SumofMultiple(num): a = [] b = 0 for i in range(num): if i % 3 == 0 or i % 5 == 0: a.append(i) b += i
print(a)
print()
print("The Sum is %d" %b)
SumofMultiple(1000)
MAX_VALUE = 1000
sum = 0
for i in range(1, MAX_VALUE ):
if (i % 3 == 0) or (i % 5 == 0):
sum = sum + i
print(sum)
const multi = num => {
return Array.from(new Array(num - 1), (_, i) => i + 1)
.reduce((s, v) => s += !(v % 3) || !(v % 5) ? v : 0, 0);
}
console.log(multi(10));
console.log(multi(1000));
sum3 = 0
sum5 = 0
sum15 = 0
for i in range(1000) :
if i % 3 == 0 :
sum3 += i
if i % 5 == 0 :
sum5 += i
if i % 15 == 0 :
sum15 += i
print(sum3+sum5-sum15)
#include <stdio.h>
class CMultipleOf3And5
{
public:
CMultipleOf3And5() {};
~CMultipleOf3And5() {};
int Solve(int inputNum);
bool CheckMultiply(int checkNum, int checkMultiplyNum);
};
int CMultipleOf3And5::Solve(int inputNum)
{
int retVal = 0;
for (int i = 0; i < inputNum; i++)
{
if (CheckMultiply(i, 3) || CheckMultiply(i, 5))
{
retVal += i;
}
}
return retVal;
}
bool CMultipleOf3And5::CheckMultiply(int checkNum, int checkMultiplyNum)
{
return (checkNum % checkMultiplyNum) == 0;
}
int main()
{
CMultipleOf3And5 exam;
printf("%d\n", exam.Solve(1000));
}
sum = 0 for i in range(1,1000) : if i%3 == 0 : sum = sum+i elif i%5 == 0 : sum = sum+i print sum```{.python}
```
package kakaotoku;
public class Multiples_of_3_and_5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum = 0;
for(int i=0;i<1000;i++){
if(i%3 ==0){
sum += i;
}
else if(i%5==0){
sum += i;
}
}
System.out.println(sum);
}
}
JAVA로 작성. 가장 기본적인 방법
public class Multiples {
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);
}
}
2단계로 나눈다.
1. 3, 5 의 배수이면서 1000 이하인 수.
- 3의 배수이면서 1000 이하인 수
- 5의 배수이면서 1000 이하인 수
- 겹치는 수는 제거
def multiples(num):
count = True
n=1
answerlist = []
while count == True:
multy = num * n
if multy >= 1000:
count = False
break
answerlist.append(multy)
n= n+1
return answerlist
final = sum(set((multiples(3) + multiples(5))))
print (final)
Swift
var total:Int = 0
var num:Int
for num in 1...999 {
if num % 3 == 0 || num % 5 == 0 {
total += num
}
}
print(total)
a = 0 b = 0 sum = 0 while a <1001: if a % 3 == 0: sum = sum + a a= a +1 elif b == 0 and a%5 == 0: sum = sum + a a=a+1 else: a= a+1
print(sum)
a = 0
b = 0
sum = 0
while a <1001:
if a % 3 == 0:
sum = sum + a
a= a +1
elif b == 0 and a%5 == 0:
sum = sum + a
a=a+1
else:
a= a+1
print(sum)
m3 = 0
m5 = 0
m15 = 0
for i in range(1,1000):
r3 = i%3
r5 = i%5
r15 = i%15
print i,r3,r5,r15
if r3 == 0:
m3 = m3 + i
print i
if r5 == 0:
m5 = m5 + i
print i
if r15 == 0:
m15 = m15 + i
print i
sum_of_multiples=m3+m5-m15
print sum_of_multiples
#include<stdio.h>
int main(void)
{
int i, sum=0;
for(i=1; i<1000; i++){
if(i%3==0 || i%5==0)
sum+=i;
}
printf("%d",sum);
return 0;
}
C로 작성했습니다. 답은 233168
Sub 코도()
Dim a As Integer, b As Integer, c As Integer Dim aa As Single, bb As Single, cc As Single
For a = 3 To 999 Step 3
aa = aa + a
Next a
For b = 5 To 999 Step 5
bb = bb + b
Next b
For c = 15 To 999 Step 15
cc = cc + c
Next c
MsgBox ("1부터 100까지의 3의 배수와 5의 배수를 모두 더한 값은 " & aa + bb - cc & "입니다")
End Sub
Javascript 입니다.
var multiplesOf3And5 = (function (result){
for (var i = 1; i < 1000; i++) {
if (i%3 === 0 || i%5 === 0) {
result += i;
}
}
return result;
})(0);
alert(multiplesOf3And5);
#include <stdio.h>
int main()
{
int x, add =0;
for(x=1; x<= 1000 ; x++)
{
if(x%3==0 && x%5==0)
add = add+x;
else
{
if(x%3==0)
add = add+x;
if(x%5==0)
add = add+x;
}
}
return add;
}
class Multiples { public static void main(String[] args) { int sum=0;```{.java}
``` for ( int i=1 ; i<1000 ; i++ ) { if( i%3==0 || i%5==0 ) sum+=i; } System.out.println(sum); } }
#10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다.
#1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
list = [] #3의 배수와 5의 배수를 넣을 빈 리스트를 생성
numbers = 0
for numbers in range(1, 1000):
if numbers % 3 == 0: #if문을 이용하여 3의 배수를 빈 리스트에 추가
list.append(numbers)
if numbers % 5 ==0: #if문을 이요하여 5의 배수를 빈 리스트에 추가
list.append(numbers)
i = 0
sum_list = 0
while i < len(list): #i값을 1씩 증가하면서 i를 리스트 인덱스로 이용
sum_list = sum_list + list[i]
print(sum_list) #덧셈 과정을 출력
i = i + 1
print("결과값은: ", sum_list) #덧셈 결과를 출력
#include <iostream>
void main()
{
int sum=0;
for (int i = 0; i < 1000; i++)
if (i % 3 == 0 || i % 5 == 0)
sum += i;
printf("%d", sum);
system("pause");
}
C++로 풀어봤습니당..
// 배수함수 만들기 int baesu(int number) { int i,sum=0; for(i=0; i<number;i++) {
if(i%3==0 || i%5==0)
{
sum+=i;
}
}
return sum;
} int main(){ printf("%d",baesu(1000)); return 0; }
import java.util.stream.IntStream; public static void main(String[] args) { System.out.println(String.format("정답: %d", foo(1000))); }
private static int foo(int end) {
return IntStream.range(1, end).filter(j -> j%3==0 || j%5==0).sum();
}
num = int(input())
print(sum(set([i for i in range(1, num) if i % 3 == 0]) | set([i for i in range(1, num) if i % 5 == 0])))
생각보다 다양한 자료형을 다뤄볼 수 있었습니다. 감사합니다.
num = 1000
result = 0
for i in range(1, num+1):
if i % 3 == 0 or i % 5 == 0:
result = result + i
print("1 ~ %d사이의 3의 배수 및 5의 배수의 합은 %d 입니다다." % (i, result))
multiplies = []
arr = range(1000)
index = 0
for value in arr:
if 3*value >= 1000 :
break
multiplies.append(3*value)
if 5*index >= 1000 :
continue
if (5 * index) % 3 == 0 :
index = index + 1
continue
if ((5 * index) - (3*value)) > 3 :
continue
else :
multiplies.append(5*index)
index = index + 1
print(multiplies)
print(sum(multiplies))
Language : JavaScript
result = 0
for(i=0; i<1000; i++){
if(i % 3 == 0 ){ result += i}
else if (i % 5 == 0 ){result += i}
};
console.log(result)
public class Multiples { //JAVA
/*10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다.
* 이들의 총합은 23이다.
* 1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
*/
public static int find_multiple(int num) {
int sum = 0;
for(int i=1 ; i<num; i++) {
if( (i % 3 ) == 0)
sum += i;
else if( i%5 == 0)
sum += i;
}
return sum;
}
public static void main(String[] args) {
int result10 = find_multiple(10);
int result1000 = find_multiple(1000);
System.out.println("10미만 3과 5의 배수의 총합은 " + result10 + " 입니다.");
System.out.println("1000미만 3과 5의 배수의 총합은 " + result1000 + " 입니다.");
}
}
/* 10미만 3과 5의 배수의 총합은 23 입니다.
* 1000미만 3과 5의 배수의 총합은 233168 입니다.
*/
var res = 0;
for(var i=1;i<1000;i++){ if(i%3 === 0 || i%5 === 0){ res += i; } }
document.write(res);
public class Test2 {
public static void main(String []args) {
int sum =0;
for(int i = 0; i < 1000; i++)
{
if(i % 3 == 0 || i % 5 ==0)
sum = sum + i;
}
System.out.println(sum);
}
}
#include <iostream>
using namespace std;
#define NUM 1000
int main()
{
int result = 0;
int num=0;
for(num = 0 ; num < NUM ; num++)
{
if(num%3==0 || num%5 ==0)
result += num;
}
cout << result << endl;
return 0;
}
count = 0
i = 1
while i < 1000:
if i%3 == 0 or i%5 == 0:
count += i
i += 1
else: i += 1
print (count)
10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다.
1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
sum=0
for x in range(1,1001):
if x%3==0:
sum+=i
elif x%5==0:
sum+=i
print(sum)
sum([x for x in range(1000) if x % 3 == 0 or x % 5 == 0])
# List comprehension 이용
# if를 이용해서 3과 5의 배수를 걸러냄
# 그리고 for 문을 이용해서 if 조건에 맞는 x를 1000미만으로 뽑아냄
# 그 뽑아낸 x를 sum함수를 이용해서 더함
using namespace std;
void main(void){ int i =0, sum =0; while(i<1000){ if(i%3==0 || i%5==0) sum += i; else i++; } count("sum of 1~1000 : " + sum); }
using System;
class Program
{
static void Main()
{
int sum = 0;
for (int i = 0; i < 1000; i++)
{
if (i % 3 == 0)
{
sum = sum + i;
}
if (i % 5 == 0)
{
sum = sum + i;
}
}
Console.WriteLine(sum);
}
}
a=int(3)
aa=int(0)
counter1=int(0)
b= int(5)
bb=int(0)
counter2=int(0)
c=int(15)
cc=int(0)
counter3=int(0)
while aa < 999:
aa=aa+a
counter1=counter1+1
while bb < 995:
bb=bb+b
counter2=counter2+1
while cc < 990:
cc=cc+c
counter3=counter3+1
aa=((a+aa)*(counter1))/2
bb=((b+bb)*(counter2))/2
cc=((c+cc)*(counter3))/2
print(aa+bb-cc)
public class Main {
public static void main(String[] args) {
//1000미만의 3,5의 배수에 합을 담을 변수
int sum = 0;
//1부터 1000미만 까지 loop
for (int i = 1; i < 1000; i++) {
//3이나 5로 나눴을때 0으로 떨어지면 3,5의 배수
if(i % 3 == 0 || i % 5 == 0)
//위에 변수에 i의 값을 더한다
sum +=i;
}
System.out.println(sum);
}
}
sum=0
for n in range(1000):
if n % 3 == 0 or n % 5 == 0:
sum += n
print(sum)
이제 시작하는데 생각해내는 게 쉽지가 않네요.
de = 0
dei = 0
x = 0 #1씩 증가용 변수
y = 0 #1씩 증가용 변수
li =[] #3,5 배수 숫자 넣는곳
setting = 0 #마지막 결과 넣는곳
while de < 1000: #3의 배수 구하기
x = x + 1
de = x * 3
if de < 1000:
th = str(de)
li.append(th)
while dei < 1000: #5의 배수 구하기
y = y + 1
dei = y * 5
if dei < 1000:
the = str(dei)
li.append(the)
li2 = set(li) #같은수 버리기
li2 = list(li2)
for i in li2: #3,5 배수 더하기
setting = setting + int(i)
print(setting)
#include <stdio.h>
int main() {
int n = 1;
int total = 0;
while (n<1000) {
if (n % 3 == 0) {
total += n;
n++;
}
else if (n % 5 == 0) {
total += n;
n++;
}
else {
n++;
}
}
printf("총합은 %d입니다.\n", total);
return 0;
}
public static void main(String args[])
{
int val = 1000;
int revval=0;
for(int j=1; j<val; j++)
{
if( ((j%3) ==0) || ((j%5)==0) )
{
revval+=j;
}
}
System.out.println("결과값 : "+revval);
}
#include <stdio.h>
void main() {
int result = 0;
for (int i = 1; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0) {
result += i;
}
}
printf("%d\n", result);
}
public static void main(String[] args) {
int n;
int sum=0;
for(n=0; n<1000; n++) {
if(n%3==0 || n%5==0)
sum+=n;
}
System.out.println(sum);
}
package test;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
public class multiple {
public static void main(String[] args) {
int limit = 1000;
int num[] = {3,5};
/* HashSet은 중복 허용 안함 */
HashSet<Integer> hash = new HashSet<Integer>();
for(int i = 0; i < num.length; i++){
for(int j = num[i]; j<limit; j=j+num[i]){
hash.add(j);
}
}
int sum = 0;
/* HashSet -> ArrayList 변환 후 Sum 계산 */
List<Integer> numbers = new ArrayList<Integer>(hash);
for(int i = 0; i < numbers.size(); i++){
sum += (int)numbers.get(i);
}
System.out.println("Sum : " + sum);
}
}
public class Multiplier { public static void main(String[] args) { int sum = 0; int TOTAL = 1000;
for(int i=1; i<TOTAL; i++) {
if(i%3 == 0 || i%5 == 0) {
sum += i;
}
}
System.out.println(TOTAL +"미만 자연수에서 3,5의 배수 총합은"+ sum+"입니다.");
}
}
package main
import "fmt"
func main() {
var result int
for i := 1; i < 1000; i++ { //i가 1000 이상일 때 까지 루프
if i%3 == 0 { //3의 배수일 경우
result = result + i
} else if i%5 == 0 { //5의 배수일 경우
result = result + i
}
}
fmt.Println(result) //결과 출력
}
Go 초보인 저로써 짤 수 있는 코드입니다. 그래도 결과는 잘 나오긴 했는데...
int sum = 0;
for(int i=1,j=1000 ;i<j; i++){
if(i%3==0 || i%5==0){
sum += i;
}
}
System.out.println(sum);
Sum : 233168
result=0 for i in range(1, 1000): if i%3==0: result=result+i elif i%5==0: result=result+i
print (result)
import time
start_time = time.time()
m3 = set()
m5 = set()
i = 999
while i:
if i % 3 == 0:
m3.add(i)
if i % 5 == 0:
m5.add(i)
i -= 1
multiples= list(m3 | m5)
answer = sum(multiples[:])
print(answer)
print("--- %s seconds ---" %(time.time() - start_time))
while로 999부터 시작했습니다.
public class multiple3and5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//http://codingdojang.com/scode/350?answer_mode=hide
/*
* 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.
* */
int n=1000;
int[] div_Num={3,5};
int sum_Of_div=0;
while(n>0)
{
for(int i=0;i<div_Num.length;i++)
{
if(n%div_Num[i]==0){
//System.out.println(n);
sum_Of_div+=n;
}
}
n--;
}
System.out.println("total Sum : "+sum_Of_div);
}
}
public static void main(String[] args) {
int sum = 0;
for(int i = 1; i <= 1000; i++){
if(i % 3 == 0 || i % 5 == 0){
sum = sum + i;
}
}
System.out.println("1000미만의 자연수에서 3, 5의 배수의 총합 : " + sum);
}
package coding.dojang.sdk;
/**
* http://codingdojang.com/scode/350?answer_mode=hide
*
* @author whitebeard
*
*/
public class Multiple3to5 {
static int MAX = 1000;
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i < MAX; i++) {
if (i % 3 == 0 || i % 5 == 0) {
sum += i;
}
}
System.out.println(sum);
}
}
가장 전통적인 방식으로 풀어 보았습니다.
public static void main(String[] args) {
int sum = 0;
int k=1000;
for(int i = 1; i<k; i++) {
if((i%3 == 0)||(i%5 == 0)) {
sum = sum + i;
}
}
System.out.println(sum);
}
#include <iostream>
using namespace std;
#define MAX 1000
int main()
{
int sum = 0;
for(int i = 0; i<MAX; i++)
{
if(i % 3 == 0 || i % 5 == 0)
{
sum += i;
}
}
cout<<"RESULT: " << sum << endl;
}
package pro_java;
public class Main {
public static void main(String[] args) {
int sum=0;
for(int i=1; i<1000; i++) {
if(i%3==0 || i%5==0) sum+=i;
}
System.out.println(sum);
}
}
자바요~
int max = 0;
public Main(int max)
{
this.max = max;
}
public int sumOf3And5()
{
int sum = 0;
for(int i = 0; i < max; i++)
{
if(i % 3 == 0 || i % 5 == 0)
{
sum += i;
}
}
return sum;
}
public static void main(String[] args)
{
System.out.println(new Main(1000).sumOf3And5());
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int i;
int sum=0;
for(i=1;i<1000;i++)
{
if(i%3==0 || i%5==0)
{
sum+=i;
}
}
printf("%d\n",sum);
return 0;
}
a=[]
a.append(list(range(1,100)))
b=a[0]
c=[]
d=0
for five_per in b:
if five_per % 3 == 0:
c.append(five_per)
elif five_per % 5 == 0:
c.append(five_per)
for plz in c:
d=d+plz
print(d)
a = [x for x in range(1000) if x%3 == 0];
b = [y for y in range(1000) if y%5 == 0];
c = [z for z in range(1000) if z%15 == 0];
sum_a = 0; sum_b = 0; sum_c = 0;
for i in a:
sum_a = sum_a + i
for j in b:
sum_b = sum_b + j
for k in c:
sum_c = sum_c + k
answer = sum_a + sum_b - sum_c;
print(answer);
a=0
aa=0
b=0
bb=0
c=0
cc=0
while a<997:
a=a+3
aa=aa+a
print(a,aa)
while b<995:
b=b+5
bb=bb+b
print(b,bb)
while c<985:
c=c+15
cc=cc+c
print(c,cc)
print(aa+bb-cc)
public class oiler {
public static void main(String[] args) {
int sum=0;
int i;
for(i=0;i<1000;i++){
if(i%3==0 || i%5 ==0)
sum+=i;
}
System.out.println(sum);
}
}
a<-999%/%3
b<-999%/%5
c<-999%/%15
print(sum(c(1:a))*3 + sum(c(1:b))*5 - sum(c(1:c))*15)
r로 풀어봤습니다. r에서 %/%는 나눈 후 소숫점을 버리는 연산자입니다.
R사용
x=1000
num<-c(1:(x-1))
num35<-NULL
for(i in num){
if(i%%3==0){
num35<-append(num35,i)
}else if(i%%5==0){
num35<-append(num35,i)}}
sum(num35)
#n 미만의 자연수에서 x와 y의 배수의 총 합을 구하라.
multipleSum <- function(x,y,n) {
x_1 <- NULL
y_1 <- NULL
for (i in 1:(n-1)) {
if (i%%x == 0) {
x_1 <- c(x_1, i)
}
else if (i%%y == 0) {
y_1 <- c(y_1, i)
}
}
ans <- sum(sort(c(x_1,y_1)))
return(ans)
}
lst = []
std = 1000 # std 미만의 자연수
num3 = 3
num5 = 5
while num3 < std:
lst.append(num3)
num3 += 3
while num5 < std:
if num5 in lst:
num5 += 5
else:
lst.append(num5)
num5 += 5
print("{} 미만의 자연수에서 3,5의 배수의 총합 =".format(std))
print(sum(lst))
import numpy as np
mult=[]
for i in range(1,1000):
if i%3==0 or i%5==0:
mult.append(i)
calc=np.array(mult)
print(calc.sum())
```{.python} A=0 i=0
for i in range(1000) : if i%3 == 0 or i%5 == 0 : A = A + i
i = i + 1
print(A)'''
package jan17th;
public class MultiplesOf3and5 {
public static void main(String[] args) {
//1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
int sum=0;
for (int i = 1; i < 1000; i++) {
if(i%3==0||i%5==0) {
sum += i;
}
}
System.out.println(sum);
}
}
#<stdio.h>
int main ()
{
int a,b = 0;
int i = 0;
for(i=0;i<1000;i+=3)
{
a += i;
}//3의배수 구하기
i=0;
for(i=0;i<1000;i+=5)
{
b+=i;
}//5의 배수 구하기
k= a + b;
return k;
}
자바입니다
public static void main(String[] args)
{
int sum = 0;
for ( int n = 1 ; n < 1000 ; ++n) {
if( n % 3 == 0 || n % 5 == 0 ) {
sum += n;
}
}
System.out.println("결과 : " + sum);
}
#include <stdio.h>
int main(void){
int i,j,k,m,n,o;
for(i=0;i<1000;i++){
if(i%3 == 0){
m+=i;
}
}
for(j=0;j<1000;j++){
if(j%5 == 0){
n+=j;
}
}
for(k=0;k<1000;k++){
if(k%15 == 0){
o+=k;
}
}
printf("3의 배수의 합은 [%d]입니다.\n", m);
printf("5의 배수의 합은 [%d]입니다.\n", n);
printf("총 합은 [%d]입니다\n", m+n-o);
return 0;
}
def sum():
sum =0
for num in range (1000):
if num % 3 == 0 or num %5 == 0 :
print (num)
sum += num
print(sum)
if __name__ == '__main__':
sum()
sum = 0
for i in range(1,1000):
if i%3==0:
sum += i
elif i%5 == 0:
sum += i
print(sum)
파이썬3.5로 했습니다. if elif문으로 작성해봤습니다.
안녕하세요. 코딩도장 처음으로 문제풀어보네요. Python3 기준으로 작성해보았습니다. 1000 이하의 수를 모두 읽은 뒤 3이나 5로 나뉘어지는 수를 list comprehension을 이용해서 list로 만든뒤 sum 함수를 사용했습니다.
n = 1000 #natural numbers(input)
print(sum([i for i in range(n) if i%3 == 0 or i%5 == 0]))
var sum = 0;
for(var i=1; i<1000; i++){
if(i%3 === 0){
sum += i;
} else if(i%5 === 0){
sum += i;
}
}
console.log(sum);
#include<iostream>
using namespace std;
void main() {
int sum = 0;
for (int i = 1; i <= 1000; i++)
{
if (i % 3 == 0)
{
sum += i;
}
else if (i % 5 == 0)
{
sum += i;
}
}
cout<<sum<<endl;
}
#include<stdio.h>
// 전체 개요
3의배수의 갯수-a
5의 배수의 갯수-b
15의 배수의 갯수-c
입력 상수-n
출력 상수-x (x= a+b-c)
필요 함수
1.양수 n 에서 m의 배수의 갯수찾기;
1.변수k 반복문 for을 이용, m * k 와 n 의 크기를 비교
2.m * k가 n 보다 커지면 연산종료 k를 returen;
//
#include<stdio.h>
//먼저 변수 n정의
int n=1000;
//n에서 m의 배수의 갯수를 찾는 함수 설정, 이때 n은1000 //
int fun_1(int n, int m)
{
int k=1; //k 는 배수의 갯수//
for(n >= k*m) //반복횟수 설정//
{ k++;
}
retutn k;
}
int main
{
int a= fun_1(1000, 3);
int b= fun_1(1000, 5);
int c= fun_1(1000, 15);
int x= a+b-c;
printf("%d",x);
}
var three = Math.floor(999 / 3); var five = Math.floor(999 / 5);
var total = 0; for(var i = 1; i <= three; i++) { total += 3i; } for(var i = 1; i <= five; i++) { total += 5i; }
echo total
num = set()
for i in range(1,1000):
if 3*i < 1000:
num.add(3*i)
if 5*i < 1000:
num.add(5*i)
num = list(num)
answer = 0
for k in range(len(num)):
answer = answer + num[k]
print(answer)
package multiplesOf3And5;
import java.util.stream.IntStream;
public class MultiplesOf3And5 {
private int multiple1(int n, int m) {
int result = 0;
for (int i = 1; i < 1000; i++)
if (i % n == 0 || i % m == 0)
result += i;
return result;
}
private int multiple2(int n, int m) {
return IntStream.range(1, 1000).filter(ele -> (ele % n == 0 || ele % m == 0)).sum();
}
public static void main(String[] args) {
MultiplesOf3And5 moa = new MultiplesOf3And5();
System.out.println("multiple1: " + moa.multiple1(3, 5));
System.out.println("multiple2: " + moa.multiple2(3, 5));
}
}
def one():
result = 0
for num in range(1, 1000):
if num % 3 == 0 or num % 5 ==0:
result=result+num
print(result)
one()
def one():
result = 0
for num in range(1, 1000):
if num % 3 == 0 or num % 5 ==0:
result=result+num
print(result)
one()
var _i3 = 0
var _i5 = 0
var _i15 = 0
for (var i = 1; i < (1000/3); i++ ) {
_i3 = _i3 + (i*3);
}
for (var i = 1; i < (1000/5); i++ ) {
_i5 = _i5 + (i*5);
}
for (var i = 1; i < (1000/15); i++ ) {
_i15 = _i15 + (i*15);
}
console.log(_i3+_i5-_i15)
class Program
{
static void Main(string[] args)
{
Console.WriteLine(string.Format("result : {0}", Natural())); //정답:233168
}
private static int Natural()
{
int num = 0;
for (int i = 0; i < 1000; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
num += i;
}
}
return num;
}
}
C 입니다!
#include<stdio.h>
#define MAX 999
#define THREE 3
#define FIVE 5
typedef unsigned short int UShort;
typedef unsigned long int ULong;
//사용자 정의 함수
int main(int argc, char *argv[]);
ULong Sum3_5s();
void Output(ULong sum);
int main(int argc, char *argv[]) {
ULong sum;
sum = Sum3_5s();
Output(sum);
return 0;
}
ULong Sum3_5s() {
UShort number;
UShort remainder_3;
UShort remainder_5;
ULong sum = 0;
for(number = 1; number <= MAX; number++) {
remainder_3 = number % THREE;
remainder_5 = number % FIVE;
if(remainder_3 == 0 || remainder_5 == 0) {
sum += number;
}
}
return sum;
}
void Output(ULong sum) {
printf("%d\n", sum);
}
def func(n):
list3 = list(filter(lambda x: (x%3) ==0, range(1,n)))
list5 = list(filter(lambda x: (x%5) ==0, range(1, n)))
list15 = list(filter(lambda x: (x%15) ==0, range(1, n)))
result = sum(list3) + sum(list5) - sum(list15)
return result
print(func(1000))
#include <stdio.h>
int main()
{
int i;
int j;
int sum;
for(i=1;i<=333;i++)
{
sum+=(i*3);
}
for(j=1;j<=200;j++)
{
sum+=(j*5);
}
for(i=1;i<=(1000/15);i++)
{
sum-=(i*15);
}
printf("%d",sum);
return 0;
}
import java.util.*;
public class main {
public static void main(String[] args) {
Scanner scanf=new Scanner(System.in);
int sum=0;
for(int i=1; i<1000; i++) {
if(i%3==0 || i%5==0) {
sum=sum+i;
}
}
System.out.println(sum);
}
}
// java 1.8
public static void main(String[] args) {
int i=1;
int sum =0;
do{
if(i%3 == 0 || i%5 ==0) {
sum += i;
}
i++;
}while(i < 1000);
System.out.println("sum >>> " + sum);
//233168
}
public class codingdojang_1 {
public static void main(String[] args) {
int i_3 = 3;
int i_5 = 5;
int sum = 0;
for(int i=1;i<1000;i++) {
if(i % i_3 == 0 || i % i_5 == 0) {
sum = sum + i;
}
}
System.out.println("정답은 :" + sum);
}
}
def multiples(n):
numbers = range(1, n)
total = 0
for number in numbers:
if number % 3 == 0 or number % 5 == 0:
total += number
return total
n = input("몇 이하의 5, 3의 배수의 합을 구하시겠습니까?: ")
n = int(n)
print(multiples(n))
public static void main (String[] args) {
int sum = 0;
for (int x = 1; x < 1000; x++) {
if (x % 3 == 0 || x % 5 == 0) {
sum += x;
}
}
System.out.println("3,5의 배수의 총합은 = "+ sum);
}```{.java}
```
#include <stdio.h>
void main()
{
int i, sum = 0;
for (i=1; i<=1000; i++)
{
if (((i%3) == 0) || ((i%5) == 0))
{
sum += i;
}
}
printf("총합 = %d", sum);
return 0;
}
class Sample1
{
public static void main(String[] args)
{
int sum = 0;
for(int i=1; i<=1000; i++)
{
if(((i%3) == 0) || ((i%5) == 0)) sum += i;
}
System.out.print("총합 = " + sum);
}
}
C랑 java로
total = 0
for i in range(1, 1000):
if i%15 == 0:
total += i
elif i%5 == 0:
total += i
elif i%3 == 0:
total += i
print total
그냥 쓸때없이 함수로..
def sum35():
a = 0
for x in range(0, 1000):
if x % 3 == 0 or x % 5 == 0:
a += x
print(a)
sum35()
#include <stdio.h>
#define MAX 1000
int main(){
int num=1;
int sum=0;
// 3, 5의 배수 총합
while(3*num<MAX){
sum+=(3*num);
if((5*num)%3!=0){ // 공배수가 아니고
if((5*num) < MAX) // MAX 이하의 수라면
sum+=(5*num); // 더해준다
}
num++;
}
printf("%d",sum);
}
public int Euler(int n) {
int sum = 0;
for(int i = 0; i < n ; i++) {
if(i % 3 == 0 || i % 5 == 0) {
sum += i;
}
}
return sum;
}
sum = 0
for i in range(1,1001):
if i%3==0: sum = sum + i
if i%5==0: sum = sum + i
else: continue
print(sum)
R을 이용하여 풀었습니다.
func <- function(x,y,z){
if(x%%1 != 0 | y%%1 != 0 | z%%1 != 0){
return("Error: 자연수만 입력하세요.")
}
a <- (z-1) %/% x
b <- (z-1) %/% y
cn <- NULL
for(i in 1:a){
cn[i] <- x * i
}
for(j in 1:b){
cn[a+j] <- y * j
}
sum(unique(cn))
}
func(3,5,1000)
성능을 고려해서 등차수열의 합을 이용한 풀이입니다.
func2 <- function(x,y,z){
if(x%%1 != 0 | y%%1 != 0 | z%%1 != 0){
return("Error: 자연수만 입력하세요.")
}
a <- (z-1) %/% x
b <- (z-1) %/% y
cn <- NULL
cn_x <- (2*x + (a-1)*x) / 2 * a
cn_y <- (2*y + (b-1)*y) / 2 * b
c <- (z-1) %/% (x*y)
cn_xy <- (2*x*y + (c-1)*x*y) / 2 * c
return(cn_x+cn_y-cn_xy)
}
func2(3,5,1000)
private int a = 0;
for (int i; i<1000; i++) {
if (i%3 = 0){
a = a + i;
}
}
for (int i; i<1000; i++) {
if (i%5 = 0){
a = a + i;
}
}
for (int i; i<1000; i++) {
if (i%15 = 0){
a = a - i;
}
}
sum=0
for t in range(1,334): #3의배수
sum+=3*t
for f in range(1,200): #5의배수
sum+=5*f
for c in range(1,67): #15의배수
sum-=15*c
print(sum)
D언어 추가해주세요...
import std.stdio;
void main(){
int stack;
for(int i=0; i<1000; i++){
if( (i%3)==0 || (i%5)==0 ){ // 3이나 5로 나눈 나머지가 0일 때 stack에 더하기
stack += i;
}
}
writeln(stack);
}
출력: 233168
nums = [num for num in range(1000)if num%3==0 or num%5==0]
sum = 0
for res in nums:
sum+=res
print(sum)
sum = 0
for i in range(1,1000):
if i%3 == 0 :
sum = sum + i
if i%5 == 0 :
sum = sum + i
if i%15 == 0 :
sum =sum - i
package com.codingdojang.level1;
public class MultiplesOf3And5 {
public static void main(String[] args) {
int sum = 0;
for (int i = 0; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0) {
sum = sum + i;
}
}
System.out.println(sum);
}
}
num=0
for i in range(334):
num+=(3*i)
for j in range(200):
num+=(5*j)
for k in range(67):
num-=(15*k)
print(num)
def sum3_5(n):
sum = 0
for i in range(1, n):
if i%3 == 0 or i%5 == 0:
sum += i
return sum
sum3_5(1000)
tot = 0
count = 1
while count < 1000:
if (count % 3 == 0) or (count % 5 == 0):
tot = tot + count
count = count + 1
print(tot)
public class Multiples {
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;
}
else if(i%3==0){
sum+=i;
}
else if(i%5==0){
sum+=i;
}
else{
continue;
}
}
System.out.println(sum);
}
}```{.java}
```
public class Multiplesof3and5 { public static void main(String[] args) { int sum; for(int i=0;i>=1000;i++) { if(i%3==0||i%5==0) { sum +=i; } } System.out.println(sum); }
int main(void){ int sum = 0;
for(int i=1; i<1000; i++){
if(i % 3 == 0 || i % 5 == 0)
sum+=i;
}
printf("sum = %d \n",sum);
return 0;
}
import java.util.*;
public class main{
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.print(sum);
}
}
자바로 작성
#include<stdio.h>
void main(){
int i,tot=0;
for(i=1;i<=1000;i++){
if(i%3==0||i%5==0){
tot+=i;
}
}
printf("%d",tot);
}
c로 작성했습니다.
int main()
{
int div_3 = 0,
div_5 = 0;
int sum=0;
int i = 0;
for (i = 1; i < 1000; i++)
{ if (i % 3 == 0) sum += i;
else if (i % 5 == 0)
sum += i;
else if (i % 3 == 0 && i % 5 == 0)
sum -= i;
}
printf("1000미만의 3과 5의 배수의 총합 : %d", sum);
}
def Multiples_of_3_and_5():
sum = 0
for number in range(1, 1000):
if number%3 == 0 or number%5 == 0:
sum = sum + number
return sum
# set library
# https://wikidocs.net/1015
def main():
pass
sets = set(range(0, 1000, 3)) | set(range(0, 1000, 5))
total = 0
for s in sets:
total += s
print("total : %d" % total)
main()
import java.util.*;
public class Test1
{
public static void main(String[] args)
{
ArrayList<Integer> list = new ArrayList<Integer>();
for (int i = 1; i < 1000; i++)
{
if ((i % 3 == 0 || i % 5 == 0) && !list.contains(i))
list.add(i);
}
int sum = 0;
for(int i : list)
sum += i;
System.out.println(sum);
}
}
public class MultiplesOf3And5 {
public static void main(String[] args) {
int ans = 0;
for (int i = 1; i < 1000; i++) {
if(i%3 == 0 || i%5 ==0)
ans += i;
}
System.out.println("Answer : " + ans);
}
}
package Q1;
/* * 10보다 작은 자연수 중에서 3 또는 5의 배수는 3, 5, 6, 9 이고, 이것을 모두 더하면 23입니다.
1000보다 작은 자연수 중에서 3 또는 5의 배수를 모두 더하면 얼마일까요?
*/
public class Q1 { public static void main(String[] args) { int count =10 , sum=0; for (int j=1; j<count; j++) { if(j%3==0||j%5==0) { System.out.printf("%d ",j); sum = sum+j; } } System.out.printf("\n%d",sum); } }
#include <stdio.h>
int main(void)
{
int cnt = 0;
for (int i = 1; i < 1000; ++i)
{
if (i % 3 == 0) cnt += i;
else if (i % 5 == 0) cnt += i;
}
printf("합계 %d", cnt);
return 0;
}
def func(num):
n_3 = (num-1)//3 # 3의 배수 갯수
n_5 = (num-1)//5 # 5의 배수 갯수
n_15 = (num-1)//15 # 15의 배수 갯수
s_3 = 3*n_3*(n_3+1)/2 # 3의 배수 총합
s_5 = 5*n_5*(n_5+1)/2 # 5의 배수 총합
s_15 = 15*n_15*(n_15+1)/2 # 15의 배수 총합
return int(s_3+s_5-s_15) # 3과 5의 최소공배수 : 15(그래서 중복값 제거)
func(10) # 23
func(1000) # 233168
def func():
m3, m5, m35 = 0, 0, 0
for i in range(1000):
if i % 3 == 0:
m3 += i
elif i % 5 == 0:
m5 += i
elif i % 3 == 0 and i % 5 == 0:
m35 += i
else:
pass
result = m3 + m5 - m35
return result
if __name__ == "__main__":
sums = func()
print(sums)
import java.util.HashSet;
import java.util.Set;
public class Multiples {
public static void main(String[] args) {
// TODO Auto-generated method stub
Set<Integer> list = new HashSet<>();
int a = 3;
int b = 5;
for( ; a < 1000; a=a+3){
list.add(a);
}
for( ; b < 1000; b=b+5){
list.add(b);
}
int sum = 0;
for(int i : list){
sum += i;
}
System.out.println(sum);
}
}
233168
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PracticeWW
{
class Calculator
{
public int Calculation()
{
int sum = 0;
for (int i = 1; i < MAX; i++)
{
if (i % 3 == 0 || i % 5 == 0)
sum += i;
}
return sum;
}
private static int MAX = 1000;
}
class Program
{
static void Main(string[] args)
{
Calculator cal = new Calculator();
Console.WriteLine(cal.Calculation());
}
}
}
C#입니다
sum = 0
for i in range(1,1001):
if i % 3 == 0 or i % 5 == 0:
sum += i
파이썬 코드 입니다.
최종 결과 값인 sum 변수를 0으로 초기화합니다.
그리고 1부터 1,000 까지 for loop를 통해서 3 또는 5로 나눈 나머지가 0일 때, sum 변수에 더해줍니다.
public class Multiples {
public static void main(String[] args){
int a,b,c,i,j,k;
a=0;
b=0;
c=0;
for(i=0;i<1000/3.0;i++){
a+=3*i;
}
//a에 3의 배수 합 입력
for(j=0;j<1000/5;j++){
b+=5*j;
}
//b에 5의 배수 합 입력
for(k=0;k<1000/15.0;k++){
c+=15*k;
}
//c에 15의 배수 합 입력
System.out.println(a+b-c);
//3의배수합+5의배수합-15의배수합 계산
}
}
Console.WriteLine($"SumValue : {Enumerable.Range(0, 1000).Where(k => k % 3 == 0 || k % 5 == 0).Sum()}");
int main(void) { int mThree = 0; int mFive = 0; int i, j = 0;
while (i !=1000)
{
if(i%3 == 0)
{
mThree = mThree + i;
}
i++;
}
while (j != 1000)
{
if(i%5 == 0)
{
mFive = mFive + i;
}
j++;
}
printf("3과 3의 배수의 합 : %d", mThree + mFive);
return 0;
}
Swift로 풀어봤습니다.
3의 배수 Set과 5의 배수 Set을 더해 중복 없는 3,5의 배수 Set을 만들고, reduce를 이용해서 더합니다.
print( Set(Array(stride(from:0, to:1000, by:3)) + Array(stride(from:0, to:1000, by: 5))).reduce(0, +) )
class Program
{
static void Main(string[] args) {
int sum = 0;
for (int i = 0; i < 1000; i++)
{
if (i % 3 == 0) { sum += i; }
}
for (int j = 0; j < 1000; j++)
{
if (j % 5 == 0) { sum += j; }
}
Console.WriteLine(sum);
}
}
def sum35(num) : return sum([i for i in range(1,num) if i % 3 == 0 or i % 5 == 0])
print(sum35(1000))
const basoo = (n) => {
let awnser = 0, i;
for (i = 0; i < n; i++) {
if (i % 3 === 0 || i % 5 === 0) {
awnser += i
}
}
return awnser;
}
console.log(basoo(10));
d```{.java} class Test{ public static void main(String args[]){ int num=1; int sum=0;
for(num=1; num<1000;num++){ if(num%3==0){ sum+=num; if(num%5==0) sum+=num; } } } ```
sum = 0 # 합 누적
for i in range(1,1001) : # 1이상 1000 이하인 i에대해서
if (i%3)*(i%5) == 0 : # 3으로 나눈 너머지가 0 또는 5로 나눈 나머지가 0 일때의 다른표현.
sum = sum+i
print(sum)
#include <stdio.h>
int main()
{
int i, n = 1000, sum = 0;
for(i=0;i<n;i++)
{
if(i%3==0 || i%5==0)
sum += i;
}
printf("배수의 총합은 : %d 입니다.", sum) ;
}
#include <stdio.h>
void main(){
int i;
int ar[1000];
for(i=0;i<1000;i++){
if (i%3 == 0 || i%5 == 0) ar[i]=i;
else ar[i] = 0;
}
for (i=0; i<1000; i++){
ar[0] = ar[0] + ar[i];
}
printf("%d",ar[0]);
}
public static int function01(int end) {
int sum = 0;
for(int i = 1; i < end; i++) {
if(i % 3 == 0 || i % 5 == 0) {
sum += i;
}
}
return sum;
}
def fun():
result = []
for i in range(1,1000):
if i%5==0:
result.append(i)
elif i%3==0:
result.append(i)
if i%15==0:
result.pop(i)
return sum(result)
print(fun())
public class Test {
public static void main(String[] args) {
int num1 =3;
int num2 =5;
int totalSum = 0;
int sum1 = 0;
int sum2 = 0;
int ranNum =1000;
int drNum1 = 0;
int drNum2 = 0;
for(int i=2; i<ranNum; i++){
if(num1>=i){
if(num1 % i==0){
sum1 += i;
}
}else{
if(i % num1==0){
sum1 += i;
}
}
if(num2>=i){
if(num2 % i ==0){
sum2 += i;
}
}else{
if(i % num2 ==0){
sum2 += i;
}
}
}
totalSum = sum1+sum2;
System.out.println(totalSum);
}
}
public class Multiples {
public static void main(String[] args) {
int sum =0;
for(int i=0;i<1000;i++) {
if (i%3 == 0 || i%5 ==0 ) {
sum = sum + i;
}
}
System.out.println(sum);
}
}
Swift4.0으로 작성하였습니다.
func multiples(n:Int) -> Int {
var result = 0
for i in 1..<n {
if (i % 3) == 0 || (i % 5) == 0 {
result += i
}
}
return result
}
print(multiples(n: 1000))
public class Main {
public static void main(String[] args) {
int sum, i;
sum = 0;
for (i = 1; i <= 1000; i++) {
if (i % 3 == 0) {
sum += i;
} else if (i % 5 == 0) {
sum += i;
}
}
System.out.println(sum);
}
}
```
int main() {
printf("TEST 1\n");
int total = 0;
for (int i=0; i < 1000; i++)
{
if (((i%3) == 0) || ((i%5) == 0))
{
total += i;
}
}
printf("TOTAL = [%d]\n", total);
return 0;
}
def basuSum(m,n,t):
total=0
for i in range(t):
if i%m==0 or i%n==0:
print(i)
total+=i
return total
result=basuSum(3,5,10)
print(result)
print("-----------------")
result2=basuSum(3,5,1000)
print(result2)
public class Multiples {
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.print(sum);
}
}```{.java}
```
sum = 0 for i in range(1000): if i % 3 == 0: sum = sum + i elif i % 5 == 0: sum = sum + i else: continue print(sum)
sum = 0
for i in range(1000):
if i % 3 == 0:
sum = sum + i
elif i % 5 == 0:
sum = sum + i
else: continue
print(sum)
package codingojang;
public class MultiplesOf3And5 {
public static void main(String[] args) {
MultiplesOf3And5 m = new MultiplesOf3And5(1000);
}
public MultiplesOf3And5(int a){
int sum = 0;
for(int i=1 ; i < a ; i++){
if(i%3 == 0){
System.out.println(a+" 안의 3의 배수: "+ i);
sum = sum+i;
}else if(i%5 == 0){
System.out.println(a+" 안의 5의 배수: "+ i);
sum = sum+i;
}
}
System.out.println(a+" 안의 3와 5의 배수의 합: "+ sum);
}
}
public class main {
public static void main(String[] args) {
int sum = 0;
for(int i=1; i<1000; i++){
if(i%3==0 || i%5==0)
sum+=i;
}
System.out.println(sum);
}
}
#10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다.
#1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
a = 999
sum = 0
for i in range(1000):
if i % 3 == 0:
sum += i
elif i % 5 == 0:
sum += i
print(sum)
public class Mutiple3and5 { public int muti(int n) { int result = 0; for(int i = 1; i <= n; i++) { if(i % 3 == 0 || i % 5 == 0) { result += i; } } return result; }
public static void main(String[] args) {
Mutiple3and5 multi = new Mutiple3and5();
System.out.print(multi.muti(300));
}
}
a = [num for num in range(1,1001) if (num % 3 == 0 or num % 5 == 0) ]
a = list(set(a))
print(sum(a))
def multiple(num):
sum = 0
for i in range(1, num):
if i%3 == 0 or i%5==0:
sum+=i
print(sum)
num = 1000
multiple(num)
#include <stdio.h>
#include <stdlib.h>
#pragma warning (disable:4996)
void main()
{
int i;
int sum = 0;
for (i = 0; i < 1000; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
sum += i;
}
}
printf("%d", sum);
system("pause");
}
Visual Stdio 2017버전
int sum = 0;
for(int i=0; i<1000; i++) {
if(i%3==0 || i % 5==0) {
sum += i;
}
}
System.out.print(sum);
}
public class Main {
public static void main(String[] args) {
int result = 0; // 결과를 담을 변수 선언
for(int i=0;i <1000; i++){
if(i%5==0 || i%3==0){
result+=i;
}
}
System.out.println("0~1000까지의 3의 배수, 5의 배수의 합은 "+result);
}
}
int main() { int sum = 0;
for (int i = 3; i < 1000; )
{
sum += i;
i += 3;
}
for (int i = 5; i < 1000; )
{
sum += i;
i += 5;
}
cout << sum << endl;
return 0;
}
public class loop2
{
public static void main(String[] args)
{
int a=0;
for(int i=0;i<1000;i++)
{
if(i%3==0||i%5==0) {
a+=i;
}
}
System.out.println(a);
}
}
#include<stdio.h>
int main()
{
int i,sum=0;
for (i = 1; i < 1000; i++)
{
if (i % 3 == 0 || i % 5 == 0)
sum += i;
}
printf("Sum of multiples of 3 or 5 below 1000 is %d . \n", sum);
return 0;
}
#include <stdio.h>
int main(void)
{
int i;
int sum = 0;
for (i = 1; i < 1000; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
sum += i;
}
}
printf("%d", sum);
return 0;
}
newList=[] for i in range(1,1000) : if i%3 ==0 : newList.append(i) elif i%5 == 0 : newList.append(i) else : continue b=set(newList) print(sum(list(b)))
#include<iostream>
using namespace std;
int main()
{
int sum = 0;
for (int i = 0; i < 1000; i++)
{
if (i % 3 == 0 || i % 5 == 0)
sum += i;
}
cout << "3,5의 배수의 1000미만 총합>>"<< sum << endl;
}
const calculate = (N) => {
const range = Array.from(Array(N).keys());
const sum = (tally, curr) => ((curr % 3 === 0) || (curr % 5 === 0)) ? tally + curr : tally;
const result = range.reduce(sum, 0);
return result;
}
#include <iostream>
/*
10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다.
이들의 총합은 23이다.
1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
*/
using namespace std;
int main()
{
int sum=0, i = 1;
while(i < 1000)
{
if (i % 3 == 0)
{
sum += i;
i++;
}
else if (i % 5 == 0)
{
sum += i;
i++;
}
else i++;
}
cout << sum << endl;
return 0;
}
#/usr/bin/python3
NUM_RANGE = 1000 # 3과 5의 배수를 구할 자연수 범위
def multipleNumsOf(num):
# 주어진 자연수 범위 내에서 자연수 num의 배수의 갯수
return (NUM_RANGE - 1) // num
def rangeSum(num):
# 1부터 자연수 num까지의 합
return int(num * (num + 1) / 2)
def sumOfMultiples(factorNum):
# 주어진 자연수 범위 내에서 자연수 factorNum의 배수의 총합
# factorNum * 1 + factorNum * 2 + factorNum * 3 + ... + factorNum * multipleNumsOf(factorNum)
# = factorNum * ( 1 + 2 + 3 + ... + multipleNumsOf(factorNum) )
# = factorNum * rangeSum(multipleNumsOf(factorNum))
return factorNum * rangeSum(multipleNumsOf(factorNum))
if __name__ == '__main__':
# 3의 배수와 5의 배수는 15의 배수를 공유하므로
# 3과 5의 배수의 총 합은 3의 배수의 총합과 5의 배수의 총합을 더한 값에서 15의 배수의 총합을 빼주면 구할 수 있다.
solution = sumOfMultiples(3) + sumOfMultiples(5) - sumOfMultiples(15)
print(solution)
반복 시행문 없이 수학을 이용해서 풀어봤습니다. 정답은 233168 나오네요.
#include <stdio.h>
int main(){
int sum = 0;
for(int i = 1; i<1000;i++){
if(i%3 == 0 || i%5 ==0) sum+=i;
}
printf("%d",sum);
return 0;
}
import java.util.stream.IntStream;
/**
* @author Kimseongsu
* @see http://codingdojang.com/scode/350
*
*/
public class Problem350 {
static final int MAX = 1000;
public static void main(String[] args) {
int sum = IntStream.range(1, MAX).filter(n -> (n%3 == 0 || n%5 == 0)).sum();
System.out.println(sum);
}
}
옮기며 배우는 중입니다.
public void Multiple()
{
int sum = 0; int Max = 1000; int iCnt = 0;
for (int i = 1; i < Max; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
sum += i;
iCnt++;
}
}
Console.WriteLine("Total count : {0}, Sum : {1}", iCnt, sum);
}
using namespace std;
int main(void) { int nA = 0; for (int i = 0; i < 1000; i++) { if (i % 3 == 0 || i % 5 == 0) nA += i; } cout << nA; }
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0) {
sum += i;
}
}
System.out.println("총합 : " + sum);
}
|| 자체가 합집합을 뜻해서 중복은 없습니다.
#include <stdio.h>
int main(void){
int sum=0;
for(int i=1;i<1000;i++){
if(i%3==0 || i%5==0){
sum+=i;
}
}
printf("%d", sum);
}
public class coding003 {
public static void main(String[] args) {
int three=0, five=0, fifteen=0;
three = (new coding003()).Method(3);
five = (new coding003()).Method(5);
fifteen = (new coding003()).Method(15);
System.out.println(three+five-fifteen);
}
int Method(int num) {
int sum=0;
for(int i=1;i<1000;i++) {
if(num*i >= 1000) break;
sum += num*i;
}
return sum;
}
}
int main(void) { int sum=0; for(int i=1;i<=1000;i++){ if(i%3==0&&i%5!=0){ sum+=i; } else if(i%3!=0&&i%5==0){ sum+=i; } else if(i%3==0&&i%5==0){ sum+=i; } } printf("%d",sum);
return 0;
}
package level1;
//10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다.
//1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
public class pr02 {
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);
}
}
}
#-*-coding:utf-8-*-
result = 0
for i in range(1,1000):
if i % 3 == 0 or i % 5 == 0:
result += i
print(result)
"""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로 나누어서 나누어 떨어지는 자연수
total = 0
for i in range(1,10):
if i % 3 == 0:
total += i
for i in range(1,10):
if i % 5 == 0:
total += i
print(total)
#1000 이하의 자연수 중 3과 5의 배수들의 합을 구하는 코드
#3으로 나누어서 나누어 떨어지는 자연수 + 5로 나누어서 나누어 떨어지는 자연수
total = 0
for i in range(1,1000):
if i % 3 == 0:
total += i
for i in range(1,1000):
if i % 5 == 0:
total += i
print("The answer to the question is : ",total)
10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다. 1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
int sum = 0;
for(int i=3; i<1000; i++) { if(i%3 == 0) { sum += i; } if(i%5 == 0 && i%3 != 0) { sum += i; } }
lst = [k for k in range(1,1001) if k % 3 == 0 or k % 5 == 0 ] lst2 = [ k for k in range(1,1001) if k % 3 == 0 and k % 5 == 0 ] result = sum(lst) - sum(lst2)
int sum = 0;
for(int i=3; i<1000; i++) {
if (i % 3 == 0 || i % 5 == 0)
sum += i;
}
System.out.println(sum);
// 안 풀려다가 걍 품
<script type="text/javascript">
var test = {
cal:function(){
var res = 0;
for ($i = 0; $i < 1000; $i++) {
if ($i % 3 == 0 || $i % 5 == 0) {
res += $i;
}
}
return res;
},
}
</script>
python version
def oilerQuiz(i):
return i % 3 == 0 or i % 5 == 0
print(sum(list(filter(oilerQuiz, range(1000)))))
// go version
package main
func main() {
sum := 0
for i := 0; i < 1000; i++ {
if i%3 == 0 || i%5 == 0 {
sum = sum + i
}
}
println(sum)
}
C version
#include <stdio.h>
int main()
{
int i, sum = 0;
const int limit = 1000;
for (i = 1; i < limit; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
sum += i;
}
}
printf("sum: %d\n", sum);
return 0;
}
C++ version
using namespace std;
int main()
{
cout << []() -> int {
int sum = 0;
for (int i = 1; i < 1000; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
sum += i;
}
}
return sum;
}() << endl;
return 0;
}
class Sample{
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);
}
}
public class Multiples {
public static void main(String[] args) {
int x=0;
for(int i=1;i<1000;i++) {
if(i%3==0||i%5==0) {
x+=i;
}
}
System.out.println(x);
}
}
C
#include <stdio.h>
int main()
{
int i;
int val;
int sum=0;
for(i=0;i<1000;i++){
if(i%3==0 || i%5==0)
sum+=i;
}
printf("%d\n",sum);
return 0;
}
sum = 0
for i in range (1,999+1):
if(i % 3 == 0 or i % 5 == 0):
sum = sum + i
print (sum)
기초만으로 짜봤습니다.
sum = 0
for i in range(1, 1000):
if i % 3 == 0 or i % 5 == 0:
sum += i
print(sum)
딱 생각나는대로 풀어본 Python 코드입니다. 고수분들께 배워갑니다.
public static void main(String[] args) {
int sum=0;
for(int i=1;i<1000;i++)
{
if(i%3==0 || i%5==0)
sum+=i;
}
System.out.println(sum);
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CodingStudio5
{
class Program
{
static void Main(string[] args)
{
int sum = 0;
Console.WriteLine("*** Coding Studio Q5 ***");
Console.WriteLine("");
Console.WriteLine("1 부터 몇까지의 수에서 3과 5의 배수를 찾을까요?");
int num = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("1 부터 {0} 에서 3과 5의 배수를 찾습니다", num);
for (int i = 1; i < num; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
Console.WriteLine("{0} 은 3이나 5의 배수입니다.", i);
sum += i;
}
}
Console.WriteLine("1 부터 {0} 에서 3과 5의 합은 {1} 입니다.", num,sum);
}
}
}
public static void main(String[] args) {
int sum=0;
for (int i=1;i<1000;i++){
if(i%3==0||i%5==0){
sum+=i;
}
}
System.out.println(sum);
}
}
int main(void){
int box = 0; int i = 0;
for(i=0;i<1000;i++){
if(i%3==0||i%5==0){
box = box + i;
}
}
printf("%d\n", box);
return 0;
}
def multi(k):
sum=0
for i in range(k):
if (i % 3 ==0) or (i % 5 ==0):
sum = sum + i
return(sum)
multi(1001) # from 0 to 1000
temp = []
for r in range(1,1000):
if r % 3 == 0 or r % 5 == 0:
temp.append(r)
print 'sum:%s' % sum(temp)
public static void main(String[] args) {
int result = 0;
for (int i = 1; i < 1000; i++) {
if (i%3 == 0 || i%5 == 0) {
result+=i;
System.out.println("3또는 5의 배수 = "+i);
}
}
System.out.println("정답은? : "+result);
}
```
#include <stdio.h>
int main()
{
int sum = 0;
for(int i=1;i<1000;i++)
{
if(i%3==0 || i%5==0)
sum+=i;
}
printf("1000미만의 자연수 중 3과 5의 배수의 총합은 %d\n", sum);
return 0;
}
sum1=0 sum2=0 sum3=0 for i in range(1,1001): if(i%3==0): sum1+=i for x in range(1,1001): if(x%5==0): sum2+=x for z in range(1,1001): if(z%15==0): sum3+=z result=sum1+sum2-sum3 print(result)
multiples_of_list = []
for i in range(1, 1000):
if i % 3 == 0:
multiples_of_list.append(i)
continue
if i % 5 == 0:
multiples_of_list.append(i)
print("sum:", sum(multiples_of_list))
#10미만의 자연수에서 3과 5의 배수는 3,5,6,9 이들의 총합은 23
#n미만의 자연수에서 3과 5의 배수와 총합은?
def multiples(num):
multiple_3 = [ i for i in range(1,num) if i%3 == 0 ]
multiple_5 = [ i for i in range(1,num) if i%5 == 0 ]
return sum(multiple_3)+sum(multiple_5)
num = 1000
print('{}미만의 자연수에서 3과 5의 배수의 합은 {}입니다.'.format(num,multiples(num)))
package algo;
public class algo14 {
public static void main(String[] args) {
int sum=0;
for(int i=0;i<10 ; i++) {
if((i%3==0) || (i%5==0)) {
sum+=i;
System.out.println(i);
}
}
System.out.println(sum);
}
}
i=0
isum=0
while True:
i+=1
if (i%3==0) or (i%5==0):
isum+=i
if(i>1000):
break
elif(i<1000):
print(isum)
파이썬 배운지 오래됐는데 까먹은것 같아 다시해보니 역시나 까먹었음..... 완전 기초적인 코드로 작성함.
public static int Print(int Max) { int sums = 0;
for (int i = 1; i < Max; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
sums += i;
}
}
return sums;
}
#include <iostream>
/*
10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다.
1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
*/
int main()
{
int num3 = 3;
int num5 = 5;
int sum = 0;
int n = 0;
for(n=1; n < 1000; n++)
{
if((n%num3 == 0) || (n%num5 == 0))
{
sum += n;
}
}
return 0;
}
x = []
for i in range(1, 1001):
if i % 3 == 0:
x.append(i)
y = []
for j in range(1,1001):
if j % 5 == 0:
y.append(j)
print(sum(x) + sum(y))
import java.util.stream.IntStream;
public class Multiplesof3and5 {
public static void main(String[] args) {
System.out.println(IntStream.range(1, 1000).filter(i -> (i % 3 == 0 || i % 5 == 0) && i % 15 != 0).sum());
}
}
public class Multiples {
public long Solution(long range) {
long highest3 = range - 1;
long highest5 = range - 1;
long highest15 = range - 1;
while (highest5 % 5 != 0) {
highest5--;
}
while (highest3 % 3 != 0) {
highest3--;
}
while (highest15 % 15 != 0) {
highest15--;
}
long sum5 = (5 + highest5) * (range / 5) / 2;
long sum3 = (3 + highest3) * (range / 3) / 2;
long sum15 = (15 + highest15) * (range / 15) / 2;
return (sum5 + sum3 - sum15);
}
public static void main(String[] args) {
Multiples sl4 = new Multiples();
System.out.println("answer : " + sl4.Solution(1000000));
}
}
class CodeRunner{
public static void main(String[] args){
int result=0;
for( int i=1;i<334;i++){
if(i*3<1000){
result+=i*3;
}
if(i*5<1000){
result+=i*5;
}
if(i*15<1000){
result-=i*15;
}
}
System.out.println(result);
}
}
public class MultiplesOf3and5 {
public static void main(String[] args) {
int sum=0;
for(int i=1; i<100; i++) {
if(i%3==0 || i%5==0)
sum += i;
}
System.out.println(sum);
}
}
public class MultiplesOf3and5 {
public static void main(String[] args) {
int sum=0;
for(int i=1; i<1000;i++) {
if(i%3==0 || i%5==0)
sum += i;
}
System.out.println(sum);
}
}
class MultipleThreeFive
{
constructor(limit)
{
this._limit = limit;
}
getSumOfMultiples()
{
let start = 0;
let sum = 0
for(start = 0; start < this._limit; start++)
{
sum += ((start%3 == 0) || (start%5==0)) ? start : 0;
}
return sum;
}
}
let generator = new MultipleThreeFive(1000);
console.log(generator.getSumOfMultiples());
import java.util.Scanner;
public class Multiples_of_3_and_5 {
int multiples(int num1, int num2) {
int result = 0;
for ( int i=1 ; i<1000 ; i++ ) {
if( i%num1==0 || i%num2==0 ) result+=i;
}
return result;
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int num1, num2;
System.out.println("두 수 입력 (ex : 3 5)");
num1 = scan.nextInt();
num2 = scan.nextInt();
Multiples_of_3_and_5 test = new Multiples_of_3_and_5();
System.out.println(test.multiples(num1, num2));
}
}
#include <iostream>
using namespace std;
int main()
{
int sum = 0;
for (int i = 0; 3 * i < 1000; i++)
sum += 3 * i;
for (int i = 0; 5 * i < 1000; i++)
sum += 5 * i;
for (int i = 0; 15 * i < 1000; i++)
sum -= 15 * i;
cout << sum;
return 0;
}
``````{.python} threes = [] fives = [] fifths = [] x = 1 while 3x <= 1000: threes.append(3x) x = x+1
x =1 while 5x <= 1000: fives.append(5x) x = x + 1
x =1 while 15x <= 1000: fifths.append(15x) x = x + 1
result = threes + fives
for ele in fifths: result.remove(ele)
print(sum(result))
```
1%3 = 1 1%5 = 1 3%3 = 0 => 3의 배수 3%5 = 3 5%3 = 2 5%5 = 0 => 5의 배수 ...
private static int twoFive(int input){
int sum;
for(int i = 1; i < input; i++){
if(3%i == 0)
sum += i;
else if(5%i == 0)
sum += i;
}
return sum;
}
public static void main(String[] args){
System.out.println(twoFive(100));
}
public class Main {
int Max;
public Main (int Max){
this.Max = Max;
}
public int progressiveMethod (){
int sum = 0 ;
for (int i = 0 ; i <= Max ; i++){
if (i % 3 == 0 || i % 5 == 0){
sum = sum + i;
}
}
return sum;
}
public static void main(String[] args) {
System.out.println(new Main(10).progressiveMethod());
System.out.println(new Main(1000).progressiveMethod());
}
}
int add = 0; int count = 1000;
for (int i = 0; i < count; i++) {
if (!(i % 3) || !(i % 5)) {
add += i;
}
}
printf("%d\n", add);#
n = 1000
i = 0
sum = 0
while i <= n :
if (i % 3 == 0) or (i % 5 == 0) :
sum = sum + i
i = i + 1
print(sum)
class Run
{
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);
}
}
<!doctype html>
<html>
<body>
<input type="text" id="input">
<br>
<button onclick="call()">click</button> //수를 입력받고 버튼을 누르면 실행되는 형태로 만들었습니다.
<p id=cal></p>
<script>
function call() {
var x = Number(document.getElementById("input").value);
var text1 = 0;
var text2 = 0;
for (i = 0; i < x; i = i + 3) {
text1 += i;
}
for (i = 0; i < x; i = i + 5) {
text2 += i;
}
document.getElementById("cal").innerHTML = Number(text1)+Number(text2);
}
</script>
</body>
</html>
resul=[]
for i in range(1,1000):
if i%3==0 or i%5==0:
resul.append(i)
print(sum(resul))
코딩초보입니다. 잘부탁드려요 ㅠㅠ
sum = 0
for i in range(0, 1000) :
if i % 3 == 0 :
sum = sum + i
elif i % 5 == 0 :
sum = sum + i
else :
continue
print(sum)
public static void main(String args[]) {
int var_3 = 3;
int var_5 = 5;
int num = 0;
int result = 0;
for(int i=1; i<34; i++) {
if(var_3*i < 100) {
num = var_3*i;
result = add(num, result);
}
if(var_5*i < 100) {
num = var_5*i;
result = add(num, result);
}
}
System.out.println("result : " + result);
}
public static int add(int input, int result){
return result+=input;
}
#include <stdio.h>
int main()
{
int a;
int b; // 3으로 나누었을때 나머지가 0이 되는 것을 찾기 위함
int c; // 5로 나누었을때 나머지가 0이 되는 것을 찾기 위함
int d; // 15로 나누었을때 나머지가 0이 되는 것을 찾기 위함
int e;
for (a=0; a=1000; a++)
{
if (a%b==0||a%b==0)
{
e=e+a;
}
}
for (a=0; a=1000; a++)
{
if (a%d==0)
{
e=e-a;
}
}
printf("%d\n",&e);
return 0;
}
#include <stdio.h>
int main()
{
int i, sum = 0;
int three[1000] = {0};
int five[1000] = {0};
for(i=1;i<1000;i++)
{
if(i%3 == 0)
{
three[i] = i;
sum += i;
}
else if(i%5 == 0)
{
five[i] = i;
sum += i;
}
}
printf("%d",sum);
return 0;
}
```{.python} a =0 for i in range(1,1000): if i%3==0 or i%5==0: a+=i for i in range(1,1000): if i%15==0: a-=i print(a)
```a =0 for i in range(1,1000): if i%3==0 or i%5==0: a+=i for i in range(1,1000): if i%15==0: a-=i print(a)
public static void main(String[] args) {
int sum=0;
List
for(int i=1;i<1000;i++) {
if(i%3==0||i%5==0) {
list.add(i);
}
}
for(int i=0;i<list.size();i++) {
sum+=list.get(i);
}
System.out.println(sum);
}
}
public class MultipleOf3and5 {
public int multipleSum(int to, int num1, int num2) {
int[] num1List = new int[to/num1];
int[] num2List = new int[to/num2];
int[] duplicatedList = new int[to/(num1*num2)];
int sumOfnum1 = 0;
int sumOfnum2 = 0;
int sumOfdupli = 0;
for (int i=0 ; i < num1List.length ; i++) {
num1List[i] = num1*(i+1);
}
for (int j=0 ; j < num2List.length ; j++) {
num2List[j] = num2*(j+1);
}
for (int z=0 ; z < duplicatedList.length ; z++) {
duplicatedList[z] = (num1*num2)*(z+1);
}
for (int n1 : num1List) {
sumOfnum1 += n1;
}
for (int n2 : num2List) {
sumOfnum2 += n2;
}
for (int d : duplicatedList) {
sumOfdupli += d;
}
int result;
result = sumOfnum1 + sumOfnum2 - sumOfdupli;
return result;
}
// 메인 함수
public static void main(String[] args) {
MultipleOf3and5 m = new MultipleOf3and5();
int to = 1000;
int num1 = 3;
int num2 = 5;
int multiSum = m.multipleSum(to,num1,num2);
System.out.printf("%d 까지의 %d 의 배수와 %d 의 배수의 합은 %d 입니다.",to, num1, num2, multiSum );
}
}
일단 for 문을 돌린 프로그램들은 숫자가 클 경우의 성능에 대한 고려가 없는 듯합니다. 주어진 수가 1000 이 아니라 10 억이라면? 그리고, 1 초 이내에 풀어야한다면?
성능을 고려해서 가우스가 풀었던 방법으로 풀었습니다. 3,5 의 배수를 아래 방법처럼 더하고, 공배수인 15 의 배수는 한번 빼주고...
이렇게 하니까 10 억 미만의 3, 5 의 배수합을 구해도 0.000001 초 이내로 답이 나옵니다. 단순히 loop 를 돌리는 방식으로는 5.7 초가 나왔습니다.
#include <iostream>
using namespace std;
int get_sum_of_multiples( int num, int divisor )
{
int sum = 0;
int last_multiple = (num / divisor) * divisor;
int multiple_count = last_multiple / divisor;
if( multiple_count % 2 == 0 )
{
sum = (1 + multiple_count) * (multiple_count / 2) * divisor;
}
else
{
sum = (1 + multiple_count) * (multiple_count / 2) * divisor
+ (multiple_count/2 + 1) * divisor;
}
return sum;
}
int main()
{
int x, y, z;
x = get_sum_of_multiples( 999, 3 );
y = get_sum_of_multiples( 999, 5 );
z = get_sum_of_multiples( 999, 15 );
cout << "result : " << x + y -z << endl;
}
package practice;
public class exercise {
public static void main(String[] args) {
// TODO Auto-generated method stub
int result = 0;
int sum=0;
for(int i=1;i<1000;i++)
{
if(i%3==0)
{
result=i;
System.out.println("1000미만의 3의 배수 : "+result);
sum+=result;
}
}
for(int i=1;i<1000;i++)
{
if(i%5==0)
{
result=i;
System.out.println("1000미만의 5의 배수 : "+result);
sum+=result;
}
}
System.out.println("1000미만의 3과 5의 배수의 총합 : "+sum);
}
}
#include <stdio.h>
void main() {
int i, sum = 0;
for (i = 1; i <= 1000; i++)
if (i % 3 == 0 || i % 5 == 0)
sum += i;
printf("총합은 %d 입니다.\n", sum);
}
c입니다.
int main() { int i,sum=0;
for (i = 1; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0) {
sum += i;
}
if (i % 3 == 0 || i % 5 == 0) {
sum = sum - i;
}
}
print("1000미만 자연수 에서 3과 5의 배수 합 : %d", i);
}
func threeMultipleFn(_ input: Int) -> Set<Int> {
var set:Set<Int> = Set()
for index in 1..<input {
guard index % 3 == 0 else {
continue
}
set.insert(index)
}
return set
}
func fiveMultipleFn(_ input: Int) -> Set<Int> {
var set:Set<Int> = Set()
for index in 1..<input {
guard index % 5 == 0 else {
continue
}
set.insert(index)
}
return set
}
func allSumToMultiple(_ treeMultipleSet: Set<Int>, _ fiveMultipleSet: Set<Int>) -> Int {
return treeMultipleSet.union(fiveMultipleSet)
.reduce(0) { $0 + $1 }
}
print(allSumToMultiple(threeMultipleFn(100), fiveMultipleFn(100)))
Swift 4.0
func threeMultipleFn(_ input: Int) -> Set<Int> {
return Set(Array(0...input).filter{ $0 % 3 == 0 })
}
func fiveMultipleFn(_ input: Int) -> Set<Int> {
return Set(Array(0...input).filter{ $0 % 3 == 0 })
}
func multipleFn(_ threeMultipleSet: Set<Int>, _ fiveMultipleSet: Set<Int>) -> Int {
return threeMultipleSet.union(fiveMultipleSet)
.reduce(0){ $0 + $1 }
}
using System;
class Program
{
static void Main()
{
int sum = 0;
for (int i = 1; i < 1000; i++)
if (i % 3 == 0 || i % 5 == 0) sum += i;
Console.WriteLine(sum);
}
}
class Main {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i < 1000; i++) {
if ((i % 3 == 0) || (i % 5 == 0)) {
sum += i;
}
}
System.out.println(sum);
}
}
#include<stdio.h>
int MutSum(int n)
{
int sum=0;
for (int i = 1; i < n; i++)
{
if (i % 3 == 0 && i / 3 >= 1)
sum += i;
else if (i % 5 == 0 && i / 5 >= 1)
sum += i;
}
return sum;
}
int main()
{
printf("%d\n", MutSum(1000));
return 0;
}
10 미만의 자연수 중 3의 배수의 총합:
3 + 6 + 9 == sum(range(0,10,3))
10 미만의 자연수 중 5의 배수의 총합:
sum(range(0,10,5))
10 미만의 자연수 중 15의 배수의 총합:
sum(range(0,10,3*5))
답안:
def sumOfMNMultiplies(m, n, maxNum):
return sum(range(0, maxNum, m)) + sum(range(0, maxNum, n)) - sum(range(0, maxNum, m * n))
sumOfMNMultiplies(3, 5, 1000)
파이썬
start = 1
end = 1000
multiples = []
sum = 0
for i in range(start, end):
if i % 3 == 0 or i % 5 == 0:
multiples.append(i)
for i in multiples:
sum += i
print(sum)
package kennsyu_イスンウ_個人練習;
public class cd_0002 {
public static void main(String[] args) {
int n = 0;
int result = 0;
while (n < 1000) {
if (n % 3 == 0) {
result += n;
} else if ((n % 5 == 0)&&!(n % 3 ==0)){
result += n;
}
n++;
}
System.out.println(result);
}
}
C로 작성했습니다.
#include <stdio.h>
int main(void) {
int sum = 0;
for (int i = 0; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0) {
sum += i;
}
}
printf("1000미만의 자연수에서 3,5의 배수의 총합 : %d\n", sum);
return 0;
}
package main
import "fmt"
func main() {
ret := 0
for idx:=0 ; idx < 1000 ; idx++ {
if (idx % 3) == 0 || (idx % 5) == 0 {
ret += idx
}
}
fmt.Println(ret)
}
x, sum = 1, 0
while x < 1000:
if (x % 3) == 0:
sum = sum + x
elif (x % 5) == 0:
sum = sum + x
x = x + 1
print(sum)
233168
int main() { int num1 = 0;
for (int i = 1; i < 1000; i++)
{
if (i % 3 == 0)
{
num1 = num1 + i;
}
if (i % 5 == 0)
{
num1 = num1 + i;
}
if (i % 5 == 0 && i % 3 == 0)
{
num1 = num1 - i;
}
}
printf("%d\n", num1);
return 0;
}
def get_value(first, second):
sum = 0
# third = lcm(first,second)
for i in range(0,1000):
if(i%first==0 and i%second!=0):
sum+=i
elif(i%first!=0 and i%second==0):
sum+=i
elif(i%first==0 and i%second==0):
sum+=i
else:
continue
return sum
get_value(3,5)
def func(a):
res = 0
for i in range(1, a):
if(i % 3 == 0):
res += i
elif(i % 5 == 0):
res += i
return res
public class Ex {
public static void main(String[] args) {
int sum = 0;
for(int i = 0; i < 1000; i++) {
if(i%5 == 0||i%3 == 0) {
System.out.print(i+" ");
sum += i;
}else {
continue;
}
}
System.out.println(sum);
}
}
num = 0 total = 0
for i in range(1000): if num % 5 == 0 or num % 3 == 0: total += num num += 1
print("1000이하의 3, 5의 배수의 합 :", total)
int main() {
int i=0,sum=0;
for(i=0;i<=1000;i++)
{
if(i%3==0||i%5==0)
sum+=i;
}
printf("1000미만의 자연수에서 3,5의 배수의 총합은 : %d ",sum);
return 0;
}
#include <iostream>
using namespace std;
int main(){
int n = 1;
int sum = 0;
while(n<1000){
if(n%3==0)
sum+=n;
if(n%5==0)
sum+=n;
if(n%15==0)
sum-=n;
}
cout << sum;
return 0;
}
t_mul = 0 f_mul = 0 sum = 0
for i in range(1,1000): if i % 3 == 0: t_mul += i elif i % 5 == 0: f_mul += i
sum = t_mul + f_mul
print(sum)
#pragma warning (disable : 4996)
#include <stdio.h>
int main()
{
int i, sum = 0;
for (i = 0; i < 1000; i++)
{
if ((((i + 1) % 3) == 0) || ((i + 1) % 5) == 0)
{
sum += i;
}
}
printf("1000 미만의 자연수 중 3의 배수와 5의 배수의 합 : %d", sum);
return 0;
}
1000 미만의 자연수 중 3의 배수와 5의 배수의 합 : 233168
C로 작성했습니다.
#include<stdio.h>
int Mutiple();
int main()
{
int result;
result = Mutiple();
printf("%d", result);
}
int Mutiple()
{
int i;
int sum =0 ;
for(i=0; i<1000; i++)
{
if(i%3 ==0 || i%5 == 0)
{
sum = sum+i;
}
}
return sum;
}
public void GetSum()
{
List<int> list = new List<int>();
for (int i = 1; i <= 1000; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
list.Add(i);
}
}
int answer = list.Sum();
Console.WriteLine(answer);
}
num=c(1:999);
result=NULL;
for(n in num){
if(n%%3==0||n%%5==0){
result=c(result,n);
}
}
result=unique(result);
sum(result);
R
def multiples3and5()
3multiples=[]
5multiples=[]
a = 3multiples[]
b= 5multiples[]
for num in range(1,1000):
if num % 3 == 0:
a = a.append(num)
if num % 5 == 0
b = b.append(num)
setA = set(a)
setB = set(b)
result = setA + setB
for i in result:
sum += i
print(sum)
int sum=0;
for(int i=1; i<1000;i++) {
if(i%3==0 || i%5==0) {
sum += i;
}
}
System.out.println("결과값 : "sum);
public static void main(String[] args) {
int sum = 0;
for(int i=1; i<1000; i++) {
if(i%3 == 0 || i%5 == 0) {
sum += i;
}
}
System.out.println(sum);
}
233168
public class Test1 {
public static void main (String[] args) {
int total = 0;
for (int i = 1; i < 1000; i ++) {
if (i % 3 == 0 || i % 5 ==0)
total += i;
}
System.out.println(total);
}
}
``````{.python}
point = 0
for point in range(1,1001):
if point % 3 ==0 and point %5 ==0:
sum =+ point
def func():
n = int(input("Type your integer: "))
result = []
for i in range(0,n):
if i%3 == 0 or i%5 == 0:
result.append(i)
else:
continue
print(sum(set(result)))
func()
int = total = 0;
for(int i = 0; i<=1000; i++){
if(i%3 == 0 || i%5 ==0){
total += i;
}
}
cout<<"총 합은 : "<<total<<endl;
public class Mul3and5 {
public static void main(String args[]) {
int i, sum=0;
for(i=1; i<1000; i++)
{
if(i % 3 == 0) sum += i;
else if(i % 5 == 0) sum += i;
}
System.out.println(sum);
}
}
list1 = []
list2 = []
for i in range(1, 1000):
if i%3 == 0:
list1.append(i)
for i in range(1, 1000):
if i%5 == 0:
list2.append(i)
result = (*list1, *list2)
result = set(result)
sum = 0
for i in result:
sum = sum + i
print(sum)
파이썬입니다. or 대신 elif를 사용하는 것이 연산속도? 가 더 느릴까요??
def oler(a):
sum = 0
for i in range(a):
if i % 3 == 0 or i % 5 == 0:
sum += i
return(sum)
result = 0 i=1 for i in range(i,1000): if i % 3 == 0 or i % 5 == 0: result = result + i print(result)
using namespace std;
int main() { int sum = 0; for (int i = 1; i < 10; i++) { if ((i % 3 == 0 && i % 5 == 0) || (i % 3 == 0 || i % 5 == 0)) { sum += i; } } cout << sum; }
#include<iostream>
using namespace std;
int main()
{
int sum = 0;
for (int i = 1; i < 10; i++)
{
if ((i % 3 == 0 && i % 5 == 0) || (i % 3 == 0 || i % 5 == 0))
{
sum += i;
}
}
cout << sum;
}
#include <stdio.h>
#define MAX_COUNT 1000
void main(void)
{
int i=0;
int TotalSum=0;
int Sum_Multiple3 = 0;
int Sum_Multiple5 = 0;
int Sum_Multiple15 = 0;
for(i=1; i<MAX_COUNT; i++)
{
if(i%3 == 0)
{
Sum_Multiple3 += i;
}
if(i%5 == 0)
{
Sum_Multiple5 += i;
}
if(i%15 == 0)
{
Sum_Multiple15 += i;
}
}
TotalSum = Sum_Multiple3 + Sum_Multiple5 - Sum_Multiple15;
printf("TotalSum = %d\n", TotalSum);
printf("Sum_Multiple3 = %d\n", Sum_Multiple3);
printf("Sum_Multiple5 = %d\n", Sum_Multiple5);
printf("Sum_Multiple15 = %d\n", Sum_Multiple15);
}
#집합 자료형(set 사용)
set1 = set(range(3,1000,3))
set2 = set(range(5,1000,5))
set3 = set1 | set2
result = sum(set3)
print(result)
#집합 자료형 X
'''
sum = 0
print("sum의 초기값 %d" , sum)
for i in range(1, 1000):
if i%3 ==0 or i% 5 ==0:
sum+=i
print(sum)
'''
def mutiple(num,endNum):
list_num = []
for _a in range(1,endNum+1): #1부터 마지막수까지
if _a % num == 0: #나머지가 없으면
list_num.append(_a) # 숫자(배수)를 리스트로 만들기
else:
continue
return sum(list_num) #리스트이 합을 리턴
_3 = mutiple(3,1000) #3의 배수
_5 = mutiple(5,1000) #5의 배수
print(_3+_5)
int sum = 0; for(int i = 0; i<1000; i++) { if(i%3==0||i%5==0) { sum+=i; } } System.out.println(sum);
result = 0
i = 1
while i < 1000:
if i % 3 == 0 or i % 5 == 0:
result = result + i
i += 1
print(result)
result = 0
for n in range(1,1000):
if n%3 == 0 or n%5 == 0:
result += n
print("result의 결과는 {}이다.".format(result))
N = 1000
i = 1
N_sum = 0
while i < N:
if i % 3 == 0:
N_sum = N_sum + i
i = i + 1
elif i % 5 == 0:
N_sum = N_sum + i
i = i + 1
else:
i = i + 1
print(N_sum)
저는 python으로 작성하였습니다. (굳이 N이라 변수 선언한 것은 스스로 변칙문제를 만들어서 풀려고 한 것입니다.)
코딩도장에서 처음 풀어본 문제입니다.
i = 1
answer = 0
while i < 1000:
if i % 3 == 0 or i % 5 == 0:
answer = answer + i
i = i + 1
print(answer)
my $sum = 0;
foreach my $i (0..999) {
if ($i % 3 == 0 || $i % 5 == 0) {
$sum += $i;
}
}
print "$sum\n"
Perl로 작성하였습니다. (단순하게 loop를 돌면서 합산하는 방식입니다.)
void main() {
int sum = 0;
for(int i = 1; i<=1000; i++){
if(i % 3 == 0 || i % 5 == 0){
sum += i;
}
}
cout << "1000미만의 자연수에서 3,5의 배수의 총합 : " << sum << endl;
}
python
import numpy as np
summation=0
for i in np.arange(1,1000,1):
if i%3==0 or i%5==0:
summation=summation+i
print(summation)
result = 0
for i in range(1000):
if i % 3 == 0 or i % 5 == 0:
result += i
print(result)
#include <stdio.h>
void main(void)
{
int i = 1, sum = 0;
for (; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0) sum += i;
}
printf("1000 미만의 자연수에서 3, 5의 배수의 총합은 %d 입니다.", sum);
}
1000 미만의 자연수에서 3, 5의 배수의 총합은 233168 입니다.계속하려면 아무 키나 누르십시오 . . .
import numpy as np
common = np.array([])
for i in range(1000):
if i % 3 == 0 or i % 5 == 0:
common = np.append(common,[i])
sum = np.sum(common)
print(sum)
int n = 1000;
int sum = 0;
for (int i = 1; i < n; i++) {
if (i % 3 == 0 || i % 5 == 0) {
sum += i;
}
}
System.out.println(sum);
}
#include <iostream>
int main()
{
int sum = 0;
for (int i = 0; i < 1000; i++) {
if ((i % 3 == 0) || (i % 5 == 0)) {
sum += i;
}
}
std::cout << sum;
}
listMultiple=[]
class Multiple:
def __init__(self,num):
self.enterNum=num
def multiple(self):
for i in range(1,1000):
if i*self.enterNum<1000:
listMultiple.append(i*self.enterNum)
else: break
return listMultiple
threeMultiple=Multiple(3).multiple()
fiveMultiple=Multiple(5).multiple()
sumMultiple=threeMultiple+fiveMultiple
result=list(set(sumMultiple))
print(sum(result))
추천 풀이 보고, 덕분에 list comprehension 배워 갑니다.
public class cd350 {
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);
}
}
집합을 이용해서 중복값을 제거했습니다.
group = set([])
n = 1
result = 0
while n <1000:
if n % 3 ==0:
group.add(n)
elif n % 5 ==0:
group.add(n)
else:
pass
n += 1
for m in group:
result += m
print(result)
public class Multiples_of_3_and_5 {
public static void main(String[] args) {
int result = 0;
for(int i=0; i<1000; i++) {
if(i%3 == 0 || i%5 == 0) {
result += i;
}
}
System.out.println("정답: " + result);
}
}
num = int(input("input number : "))
sum = 0
for i in range(num):
if i == 0:
continue
if i%3==0 or i%5==0:
sum = sum+i
print(sum)
파이썬 입니다
num = 0
result = 0
while num < 999:
num += 1
if num % 3 == 0 or num % 5 == 0:
result += num
print(result)
result = 0
for i in range(1, 1000):
if i % 3 == 0 or i % 5 == 0:
result += i
result = format(result, ',')
print("정답은" ,result, "입니다.")
기초적인 형태로 작성을 했습니다.
#pragma warning (disable : 4996)
#include <stdio.h>
int main()
{
int i, sum = 0;
for (i = 0; i < 999; i++)
{
if ((((i + 1) % 3) == 0) || (((i + 1) % 5) == 0))
{
sum += i + 1;
}
}
printf("1000 미만의 자연수 중 3과 5의 배수의 총합 : %d", sum);
return 0;
}
개강한 김에 C언어 예습한 걸 확인할 겸 C로 풀었습니다. 미숙한 솜씨로 눈 버리게 해드려 죄송합니다... ㅠㅠ
public class Thausand {
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);
}
}
void problem001() { int i; int result;
result = 0;
for (i = 1; i < 1000; i++) // 1000보다 작은 자연수
{
if ((i % 3 == 0) || (i % 5 == 0)) // 3의 배수 또는 5의 배수
{
result += i;
}
}
printf("Result : %d\n", result);
}
var myResult = 0;
for(i=0; i<1000; i++)
{
if(i%3 == 0 || i%5 == 0)
{
myResult += i;
}
}
alert(myResult);
#include<stdio.h>
int main()
{
int num;
int i;
int sum =0;
scanf("%d", &num);
for (i = 1; i<num; i++)
{
if ((i % 3 == 0) || (i % 5 == 0))
sum = i + sum;
};
printf("%d", sum);
return 0;
}
result=0 for i in range(0,1000): if i%3==0: result=result+i elif i%5==0: result = result + i print(result)
파이썬3
num=int(input("숫자를 입력하시오:"))
sum=0
for x in ragne(1,num):
if x%3==0:
sum+=x
elif x%5==0:
sum+=x
print(sum)
result = 0
for i in range(1, 1000):
if i % 15 == 0 or i % 3 == 0 or i % 5 == 0:
result += i
print(result)
def sum_multiple_3_5():
result = 0
print("Default Value %s" %(result))
for i in range(1, 1000):
if i % 3 == 0 or i % 5 == 0:
result += i
print(i)
print(result)
sum_multiple_3_5()
public static void main(String[] args) {
int sum3=0;
int sum5=0;
int sum15=0;
for(int i=1; i<1000; i++) {
if(i%3==0)
sum3+=i;
if(i%5==0)
sum5+=i;
if(i%15==0)
sum15+=i;
}
System.out.println(sum3+sum5-sum15);
}
from timeit import default_timer as timer
def timeit(method):
def timed(*args, **kw):
ts = timer()
result = method(*args, **kw)
te = timer()
if 'log_time' in kw:
name = kw.get('log_name', method.__name__.upper())
kw['log_time'][name] = int((te - ts) * (10 ** 6)) #micro sec
else:
print '%r %2.2f us' % (method.__name__, (te - ts) * (10 ** 6))
return result
return timed
@timeit
def test0(limit=10):
sum = 0
for i in range(0, limit):
if i % 3 == 0 or i % 5 == 0:
sum += i
return sum
@timeit
def test1(limit=10):
set3 = set(range(3, limit, 3))
set5 = set(range(5, limit, 5))
return sum(set3|set5)
@timeit
def test2(limit=10):
list3 = range(3, limit, 3)
list5 = range(5, limit, 5)
list15 = range(15, limit, 15)
return sum(list3 + list5) - sum(list15)
if __name__ == '__main__':
limit = 1000
target_funcs = [test0, test1, test2]
for f in target_funcs:
print f(limit)
'test0' 107.90 us 233168 'test1' 60.29 us 233168 'test2' 21.64 us 233168
파이썬을 이용한 몇가지 접근...
public int Mul(int valueType) {
int result = 0;
int div = (1000%valueType!=0)?(1000/valueType):(1000/valueType)-1;
for(int i=1;i<=div;i++) {
result += valueType*(i);
}
return result;
}
Java인뎅 허접이라 너무 대강 짯네요...
b = 0
a = 0
for i in range(999):
a += 1
if a%3 == 0 and a%5 != 0:
b += a
elif a%5 == 0 and a%3 != 0:
b += a
elif a%5 == 0 and a%3 == 0:
b += a
print(b)
public class Main {
public static void main(String[] args) {
int sum=0;
for(int i=1;i<1000;i++) {
if(i%3==0) {
sum+=i;
}else if(i%5==0) {
sum+=i;
}
}
System.out.println(sum);
}
} ```{.java}
```
#include <stdio.h>
int main(){
int x,sum=0;
for (x=1;x<=333;x++) sum+=3*x;
for (x=1;x<=199;x++) sum+=5*x;
for (x=1;x<=66;x++) sum-=15*x;
printf("sum of all the multiples of 3 or 5 \nbelow 1000 is %d",sum);
return 0;
}
public class DojangQuiz01 {
public static void main(String[] args) {
int sum = 0;
for(int i = 1; i < 1000; i++) {
if(i % 3 == 0 || i % 5 == 0) {
sum += i;
}
}
System.out.println(sum);
}
}
python으로 작성하였습니다
result = 0
for i in range(3,1000):
if(i % 3 == 0 or i % 5 == 0):
result += i
print(result)
#Project Euler 1.
#10미만 3과 5 배수 구하기
result = 0 #초기값 설정
for i in range(1,1000):
if i % 3 == 0 or i % 5 ==0:
result += i
print(result)
class CodingDojang {
public static void main(String[] args) {
int sum = 0;
for (int i=1;i<1000;i++) {
if (i%3 == 0 || i%5 == 0) {
sum+=i;
}
}
System.out.println(sum);
}
}
#include <iostream>
using namespace std;
int main() {
int N;
cin >> N;
int sum = 0;
for (int i = 0; i < N; ++i) {
if (i % 3 == 0 || i % 5 == 0)
sum += i;
}
printf("Multiples of 3 and 5 out of N - %d\n", sum);
//system("pause");
return 0;
}
더 좋은 방법이 있을지 생각해보고 있습니다.
result = 0
for i in range(1, 1000):
if i % 3 == 0 or i % 5 == 0:
result += i
print(result)
정답: 233168
var a= 0; for(var i=0; i<1000; i++){ if(i%3 == 0 || i%5 == 0){ a += i; } }
document.write('result : '+ a);
public class MutiplesOf3And5 {
public static void main(String[] args) {
int i;
int sum1 = 0;
int sum2 = 0;
for(i=1;i<1000;i++) {
int sum3 = sum1 +sum2;
if(i%3==0) {
sum1 += i;
}else if(i%5==0) {
sum2 += i;
}
System.out.println(i + "번째 3의 배수의 총합 = "+ sum1);
System.out.println(i + "번째 5의 배수의 총합 = "+ sum2);
System.out.println(i + "번째 3,5의 배수의 총합 = "+ sum3);
}
}
}
x=[]
y=[]
for a in range(1, 1000):
if a%3==0:
x.append(a)
elif a%5==0:
y.append(a)
x_set=set(x)
y_set=set(y)
final=list(x_set.union(y_set))
print(sum(final))
#include <stdio.h>
int main(void) {
int sum=0;
int i;
for(i=1; i<=1000; i++){
if(i%3==0 || i%5==0){
sum = sum+i;
}
}
printf("%d",sum);
return 0;
}
sum3 = 0
sum5 = 0
for i in range(1000):
if i % 3 == 0:
sum3 += i
elif i % 5 == 0:
sum5 += i
sum_all = sum3 + sum5
print(sum_all)
a = sum(range(3,1000,3))
b = sum(range(5,1000,5))
c = sum(range(15,1000,15))
print(a + b - c)
233168
function multiple() {
const multi = [];
for (let i = 1; i < 1000; i++) {
if (i % 3 === 0 || i % 5 === 0) {
multi.push(i);
}
}
return multi.reduce((accum, current) => accum + current);
}
multiple()
단순하게 for문을 사용하여 3과 5의 배수인 경우는 빈 배열에 더해주고, js의 reduce 함수를 사용하여 그 수들을 모두 더하였습니다.
sum = 0
for i in range(1000):
if i % 3 == 0:
sum += i
elif i % 5 == 0:
sum += i
elif i % 15 == 0:
sum -= i
print(sum)
import java.util.Scanner;
public class MultipleOf { public static void main(String[] args) { int sum=0; for (int i = 0; i < 1000; i++) { if (i%3==0 || i%5==0) { sum = sum + i; } } System.out.println(sum); } }
public static void main(String[] args) {
System.out.println(solv(1000 - 1, 3, 5));
}
public static int solv(int n, int m1, int m2) {
return
m1 * (n/m1) * (1 + (n/m1)) / 2
+ m2 * (n/m2) * (1 + (n/m2)) / 2
- (m1*m2) * (n/(m1*m2)) * (1 +(n/(m1*m2))) / 2
;
}
public class mutibples {
public static void main(String[] args) {
int count = 0;
for(int i=1; i<1000; ++i) {
if(i%3 == 0) {
count += i;
} else if (i%5 == 0) {
count += i;
}
}
System.out.println(count);
}
}
package multiple;
class num{
int limiter = 1000;
int sum = 0;
public void print() {
for(int a = 0; a<limiter; a++) {
if(a%3==0||a%5==0) {
sum += a;
}
}
}
}
public class multiple001 {
public static void main(String[] a) {
num num = new num();
num.print();
System.out.println(num.sum);
}
}```{.java} package multiple;
class num{
int limiter = 1000;
int sum = 0;
public void print() {
for(int a = 0; a<limiter; a++) {
if(a%3==0||a%5==0) {
sum += a;
}
}
}
}
public class multiple001 {
public static void main(String[] a) {
num num = new num();
num.print();
System.out.println(num.sum);
}
} ```
Easy way....
sum=0
for i in range(1,1001):
if i%3==0:
sum=sum+i
continue
elif i%5==0:
sum=sum+i
continue
else:
continue
print(sum)
public class MultiplesOf3and5 {
public static void main(String[] args) {
int a = 0;
for(int i = 0; i < 1000; i++) {
if(i%3==0 || i%5==0) {
a += i;
}
}
System.out.println(a);
}
}
mult = []
res = 0
for x in range(3, 1001, 3):
mult.append(x)
for y in range(5, 1001, 5):
mult.append(y)
for z in range(15, 1001, 15):
mult.remove(z)
for i in mult:
res += i
print(res)
int result = 0; for(int i =1; i <= 1000; ++i) { if((i % 3 == 0) || (i%5 ==0)) result += i; }
return result;
sum3=0 sum5=0 sum15=0 for i in range(1,100): if i%3==0: sum3+=i if i%5==0: sum5+=i if i%15==0: sum15+=i print(sum3+sum5-sum15)```{.python}
```
n = 1000
l = [False]*n
res = 0
for i in range(3, n, 3):
if not l[i]:
l[i] = True
res += i
for i in range(5, n, 5):
if not l[i]:
l[i] = True
res += i
print(res)
Python3 입니다
#include<stdio.h>
int main()
{
int num;
int i;
int sum =0;
scanf("%d", &num);
for (i = 1; i<num; i++)
{
if ((i % 3 == 0) || (i % 5 == 0))
sum = i + sum;
};
printf("%d", sum);
return 0;
}
package codingdozang;
public class multiples {
public static void main(String[] args) {
final int NUM=1000;
int sum=0;
for(int i=1; i<NUM;i++)
if(i%3==0||i%5==0)
sum+=i;
System.out.println("1-1000중 3과 5의 배수의 합은: "+sum);
}
}
#include <stdio.h>
int main(void)
{
int i;
int cntA = 0, cntB = 0, cntC = 0;
int sumA = 0, sumB = 0, sumC = 0;
for (i = 0; i < 1000; i++)
{
if (i % 3 == 0)
{
cntA++;
sumA = sumA + i;
}
}
for (i = 0; i < 1000; i++)
{
if (i % 5 == 0)
{
cntB++;
sumB = sumB + i;
}
}
for (i = 0; i < 1000; i++)
{
if (i % 15 == 0)
{
cntC++;
sumC = sumC + i;
}
}
printf("1에서 1000까지 3의 배수는 %d개 있으며 총 합은 %d 입니다\n", cntA, sumA);
printf("1에서 1000까지 3의 배수는 %d개 있으며 총 합은 %d 입니다\n", cntB, sumB);
printf("3의 배수와 5의배수의 총 합은 %d 입니다", sumA + sumB - sumC);
}
public class Answer {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum=0;
List<Integer> list_num = new ArrayList<>();
for(int i=1; i<1000; i++) {
if(i%3==0 || i%5==0)
list_num.add(i);
}
for(int i=0; i<list_num.size(); i++)
sum+=list_num.get(i);
System.out.println("1000이하의 3과 5의 배수의 총합 : " + sum);
}
}
list_range = range(1,1000)
total = 0
for int_i in list_range :
if (int_i % 3 == 0 or int_i % 5 == 0):
total += int_i
print total
num=int(input("숫자를 입력하시오:"))
sum=0
for x in range(1,num):
if x%3==0 or x%5==0:
sum+=x
for x in range(1,num):
if x%15==0:
sum-=x
print(sum)
#include <stdio.h>
int main(int argc, const char * argv[]) {
int i = 0;
int sum = 0;
for(i = 0; i<1000; i++) {
if(i % 3 == 0 || i % 5 == 0) sum += i;
}
printf("%d\n", sum);
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int sum = 0;
for(int i = 1;i<=1000;i++)
{
if(i%3==0||i%5==0)
{
sum+= i;
}
}
System.out.println(sum);
}
}
//10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다. //1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
int main(){ int num=0; int sum=0; while(1){ if(num==1000) break; if(num%3 ==0 || num %5==0){ sum+=num; } num+=1; } printf("Sum is %d",sum); return 0; }
use C
public class KimSanghyeop
{
public static void main(String[] args)
{
int sum=0;
int mod;
for(int f1=1;f1<1000;f1++)
{
sum += f1;
if(f1 % 3 !=0 && f1 % 5 !=0)
{
sum-=f1;
}
}
System.out.println("총합 : "+sum);
}
}
>>> sum(i for i in range(1000) if i % 3 == 0 or i % 5 == 0)
>>> sum((i for i in range(1000) if i % 3 == 0 or i % 5 == 0))
두 코드 모드 정상적으로 동작합니다. 그러나 제너레이터를 사용하면 메모리를 조금 아끼고 속도도 조금 더 높일 수 있습니다.
package Multiples_of_3_and_5;
/*
* 10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다.
* 1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
*/
public class 문제 {
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);
}
}
select sum(levelNo)
from ( select level as levelNo
from dual
connect by level < 1000 )
where mod(levelNo, 3) = 0
or mod(levelNo, 5) = 0;
num=1000
list_3=[]
list_5=[]
list_15=[]
cnt = num/3;
i=1;
while i<=cnt :
num_3 = 3*i
num_5 = 5*i
num_15 = 15*i
if num > num_3 :
list_3.append(num_3);
if num > num_5 :
list_5.append(num_5);
if num > num_15 :
list_15.append(num_15);
i++;
print(sum(list_3) + sum(list_5) - sum(list_15)
thr = []
for i in range(1,1000,1):
if i % 3 == 0:
thr.append(i)
elif i % 5 == 0 :
thr.append(i)
else:
continue
print(sum(thr))
numlist = []
for i in range(1, 1000):
if i % 3 == 0:
numlist.append(i)
if i % 5 == 0:
numlist.append(i)
numlist = set(numlist)
numlist = list(numlist)
hap = 0
for i in numlist:
hap += i
print(hap)
# python 3.7.1
print(sum({x for x in range(1000) if x % 3 == 0} | {y for y in range(1000) if y % 5 == 0}))
All=0 number_thr = [] number_fiv = [] number_use = [] for i in range(0,1000): if i%15 == 0 : number_use.append(i) elif i%3 == 0 : number_thr.append(i) elif i%5 == 0 : number_fiv.append(i)
for a in number_use : All += a for b in number_thr : All += b for c in number_use : All += c print(All)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Question_1
{
class Program
{
static void Main(string[] args)
{
int num = 1000;
int sum = 0;
for(int i=1; i < num; i++)
{
if(i % 3 == 0 || i % 5 == 0)
{
sum += i;
}
}
Console.WriteLine("sum = " + sum);
}
}
}
list comprehension using any python version
sum(set([i for i in range(1000) if i % 3 == 0]) | \
set([i for i in range(1000) if i % 5 == 0]))
maxrange = 1000
result = 0
for i in range(1,maxrange):
if i % 3 == 0 or i % 5 == 0:
result = result + i
print("정수 {0}까지에 존재하는 3과 5의 배수의 합은 {1} 입니다.".format(maxrange, result))
int sum = 0;
for (int i = 1; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0) {
sum+=i;
}
}
System.out.println(sum);
정답: 233168
namespace codingdojang
{
class Program
{
static void Main(string[] args)
{
int result = 0;
for (int i = 0; i < 1000; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
result += i;
}
}
Console.WriteLine(result);
}
}
}
c#
using namespace std;
int main() { int Count = 0; for (int i = 1; i < 1000; i++) { if (i % 3 == 0 || i % 5 == 0) { cout << i << " "; Count += i; } } cout << endl << "이들의 총합은 " << Count << "이다." << endl; }
sum=0 i=1 while i<1000: if i%3==0 or i%5==0: sum=sum+i i=i+1
print(sum){.python}
1부터 1000까지의 숫자를 하나씩 3 또는 5의 배수인지를 체크하고 해당이되면 더하였습니다.
#include <iostream>
using namespace std;
inline int sum(int n){return (n+1)*n/2;}
int main(){
int x=3,y=5,nMx=1000;
cout<<"result :"<<sum((nMx-1)/x)*x+sum((nMx-1)/y)*y-sum((nMx-1)/(x*y))*x*y<<endl;
}
private static void solution(int max) {
int result = 0;
for(int i=1; i<max; i++) {
if(i%3 == 0 || i%5 == 0) {
result += i;
}
}
System.out.println(result);
}
package org.eonmi.codingdojang;
public class multipleof3and5 {
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);
}
}
java로 작성했습니다. 233168
total = 0
for i in range(1,1000) :
if i % 3 == 0 and i % 15 != 0 :
total += i
elif i % 5 == 0 and i % 15 != 0 :
total += i
elif i % 15 == 0 :
total += i
print(total)
public class Multiples { public static void main(String[] args) { int plus=0; for(int i=1;i<1000;i++) { if((i%3)==0||(i%5)==0) { plus+=i; } } System.out.println("총합은 : "+plus); } }
package pac;
import java.util.*;
public class franklin {
public static void main(String[] args)
{
int thousand=1000;
int i=0, sum=0;
for(i=0;i<thousand;i++)
{
if(i%3==0 || i%5==0)
{
sum+=i;
}
}
System.out.println(sum);
}
}
a = []
b = 0
for i in range(1, 1000):
# a.append(i)
if i%3 ==0:
b = b + i
continue
a.append(i)
print(b)
~
public class test {
public static void main(String[] args) {
int num=0;
for(int i=0; i<1000; i++)
if(i%3==0 || i%5==0)
num+=i;
}
}
result = 0
n = 0
while True:
n += 1
if n % 3 == 0 or n % 5 ==0:
result += n
if n > 1000:
break
print(result)
print ("3과 5의 배수 합") i = 1 sum = 0 while i < 1000: if (i % 3 == 0) or (i % 5 == 0): sum += i i+=1 print (sum)
Java 8
package test;
import java.util.stream.IntStream;
public class tut04 {
public static void main(String[] args) {
int sum3 = IntStream.range(1, 1000)
.filter(i -> (i%3) == 0)
.sum();
int sum5 = IntStream.range(1, 1000)
.filter(i -> (i%5) == 0)
.sum();
int sum15 = IntStream.range(1, 1000)
.filter(i -> (i%15) == 0)
.sum();
System.out.println(sum3 + sum5 - sum15);
}
}
void main() { int i, sum = 0;
for (i = 1; i < 1000; i++)
{
if (i % 3 == 0)
{
sum += i;
}
else if (i % 5 == 0)
{
sum += i;
}
}
printf("%d", sum);
}
#include <stdio.h>
int main(void)
{
int i;
int sum = 0;
for (int i = 1; i < 1000; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
sum = sum + i;
}
}
printf("%d", sum);
return 0;
}
c언어 작성
result = 0
a = 0
while True :
if a >= 1000 :
break
else :
if a % 3 == 0 or a % 5 == 0 :
result += a
a += 1
print(result)
def Sum(a, b):
count= 0
for x in range(1, 1000):
if x % a == 0 or x % b == 0:
count += x
return count
print(Sum(3, 5))
함수 이용
int main() { int i; int sum = 0;
for (i = 1; i <= 1000; i++)
{
if (i % 3 == 0 && i % 5 == 0)
sum += i;
}
printf("%d\n", sum);
return 0;
}
#include <stdio.h>
void main()
{
int num = 1, sum = 0, *plus = ∑
while (num < 1000)
{
if (num % 3 == 0)
{
*plus += num;
}
if (num % 5 == 0)
{
*plus += num;
}
num++;
}
printf("%d\n", sum);
}
C로 포인터 이용해서 작성했습니다.
i = 1
sum = 0
while i < 1000:
if (i % 3 == 0) or (i % 5 == 0):
sum += i
i += 1
print("총 합은 %d" % sum)
파이참으로 작업했습니다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int Num, a, b;
int sum1 = 0, sum2 = 0, i;
scanf("%d%d%d", &Num, &a, &b);
for (i = 1; i <=(int((Num - 1) / a)); i++)
{
sum1 += i * a;
}
for (i = 1; i <= (int((Num - 1) / b)); i++)
{
sum2 += i * b;
}
printf("%d", sum1 + sum2);
return 0;
}
def sum_q(a):
y = 0
for x in range(1, a):
if x % 3 == 0 or x % 5 == 0:
y += x
return y
print(sum_q(1000))
num = 0
sum = 0
while num < 1000:
if num % 3 == 0:
sum += num
if num % 5 == 0:
sum += num
num += 1
print(sum)
my_nat = range(1,1000)
numbersaver=0
for num in my_nat:
if num % 3 ==0 or num % 5 ==0:
numbersaver+=num
print(numbersaver)
result = 0
n = 1000
#1부터 999까지
for i in range(1,n):
if i % 3 == 0 or i % 5 == 0:
result+=i
print(result)
C#
int sum = 0;
for (var i = 1; i < 1000; i++)
{
if(i % 3 == 0 || i % 5 == 0)
{
sum += i;
}
}
Console.WriteLine(sum);
result = 0
i = 0
while i < 1000:
if i % 3 == 0 : result += i
if i % 5 == 0 : result += i
if i % 15 == 0 : result -= i
i += 1
print(result)
def multiple(number, limit):
point = number
i = 1
setmultiple = set([])
while point < 1000:
setmultiple.add(point)
i += 1
point = number * i
return setmultiple
a = multiple(3, 1000)
b = multiple(5, 1000)
total = a.union(b)
sum = 0
for i in total:
sum += i
print(sum)
using namespace std;
int main(void) {
int i = 3, j = 5, k = 1000;
int total = 0;
for (int num = 1; num < k; num++)
{
if (num % i == 0 || num % j == 0)
{
total += num;
}
}
cout << total << endl;
return 0;
}
def common_mul(int):
sum_li = []
i = 1
while i < int:
if i % 3 == 0 or i % 5 == 0:
sum_li.append(i)
i += 1
return print(sum(sum_li))
def main():
user_input = int(input("Input integer : "))
common_mul(user_input)
if __name__ == '__main__':
main()
```{.python}
sum([i for i in range(1000) if i%3==0 or i%5==0])
sum
{.python}
sum([i for i in range(1000) if i%3==0 or i%5==0])
sum{.python}
```sum([i for i in range(1000) if i%3==0 or i%5==0]) print(sum)
#include <stdio.h>
#include <stdlib.h>
void main()
{
int i = 0;
int sum = 0;
for (i = 0; i < 1000; i++)
{
if (i % 3 == 0)
sum = sum + i;
if (i % 5 == 0)
sum = sum + i;
if (i % 3 == 0 && i % 5 == 0)
sum = sum - i;
}
printf("1000미만의 3과 5의 배수의 합은 %d", sum);
system("pause");
}
public class Oiler {
public static void main(String[] args) {
// 오일러
// 1000 미만의 자연수에서 3과 5의 배수의 총합을 구하라.
int answer = 0;
for(int i=1; i<1000; i++)
{
if(i%3==0 || i%5==0)
answer += i;
}
System.out.println(answer);
}
}
total = 0
count= 1
while count < 1000 :
if count % 3 == 0 or count % 5 == 0 :
total += count
count += 1
print(total)
int main() { int i, hap; hap = 0;
for (i = 0; i < 1000; i++) {
{
if (i % 3 == 0 || i % 5 == 0)
hap += i;
}
}
printf("0부터 1000까지의 수 중에서 3과 5의 배수의 합은 %d이다.\n", hap);
}
def get_mul_series(base, limit):
muls = set()
cur_mul = base
while cur_mul < limit:
muls.add(cur_mul)
cur_mul += base
return muls
limit = 1000
muls = get_mul_series(3, limit) | get_mul_series(5, limit)
sum = 0
for val in muls:
sum+= val
print(sum)
public class Solution {
public int solution(int x, int y) {
int answer = 0;
for(int i = 1; i < 1000; i++) {
if(i % 3 == 0 || i % 5 == 0) {
System.out.println(i);
answer += i;
}
}
return answer;
}
}
1부터 1000까지 증가하는 반복하는 반복문의 i값을 3으로 나누었을 때 나머지가 0으로 떨어지거나, 5로 나누었을 때 나머지가 0으로 떨어지는 값을 찾아 그 i들의 값들을 answer에 더해나간다.
def solution(x, y):
answer = 0
for i in range(1000):
if(i % x == 0) or (i % y == 0):
answer += i
return answer
x = 3
y = 5
print(solution(x, y))
1000까지 반복하는 자연수 i에 3으로 나누었을 때 나머지가 0이거나 5로 나누었을 때 나머지가 0이면 answer에 누적하여 더하라. 결과는 233168
int main() { int Sum = 0; for(int i = 1; i < 1000; i++) if(i % 3 == 0 || i % 5 == 0) Sum += i; printf("%d\n", Sum); }
int result=0;
for (int i=0;i<1000;i++){
if(i%3==0 || i%5==0)
result += i;
}
System.out.println(result);
int main(){
int sum = 0;
for(int i =1; i < 1000; i++){
if(i % 3 == 0 || i % 5 == 0){
sum += i;
}
}
printf("%d\n", sum);
return 0;
}
python 막 공부 시작했습니다. 첫 문제 도장 꾹!
result = 0
for n in range(1, 1000):
if n % 3 == 0 or n % 5 == 0:
result += n
print(result)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int b = 0;
for (int i = 1; i < 1000; i++)
{
if (i % 3 == 0||i % 5 == 0)
{
b += i;
}
}
printf("%d", b);
}
아 참고로 이건 c++이 아니라 그냥 c입니다
초보 코더입니다! 파이썬을 이용했습니다.
num=0
for i in range(1000):
if i % 3==0 and i % 5==0:
num+=i
elif i%3==0:
num+=i
elif i%5==0:
num+=i
else:
continue
print(num)
int a=1; int b=1; int c=1; { for a<1000 int sumA=0; a=a3; sumA=sumA+a; } { for b<1000 int sumB=0; b=b5; sumB=sumB+b; } { for c<1000 int sumC=0; sumC=sumC+c; } answer=sumA+sumB-sumC
count=0
sum=0
while count<999:
count=count+1
if count%3==0:
sum=sum+count
elif count%5==0:
sum=sum+count
print(sum)
아직 파이썬 while문까지만 배운 뉴비여서 어거지로 푼거 같네요...ㅠㅠ
# -*- coding: utf-8 -*-
'''
Title : 1,000 미만의 자연수에서 3과 5의 배수의 총합을 구하라
Check Point : range()
'''
# import
import sys
# define
LIMIT_ = 1000
# function
def getDouble(n):
sum = 0
for cnt in range(0, LIMIT_):
if not (cnt % n):
sum = sum + cnt
return sum
# exception
if (len(sys.argv) != 1):
print ("Usage: $ python3 [filename]")
exit()
# body
print ("Sum of multiples of 3 or 5, below 1,000: %d" % (getDouble(3) + getDouble(5)))
#include<iostream>
#include<list>
using namespace std;
int main(void)
{
int total = 0;
list<int> lv;
list<int>::iterator itr;
for (int i = 1; i < 1000; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
lv.push_back(i);
}
}
lv.sort();
lv.unique();
for (itr = lv.begin(); itr != lv.end(); itr++)
{
total += *itr;
}
cout << total << endl;
}
10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다. 1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
function totalSum(int){
let memory = 0
for(let i=0; i<int; i++){
if(i%3 ==0 || i%5 == 0){
memory+=i
}
}
return memory
}
totalSum(1000)
//정답: 233168
i = 0, j = 0, k = 0, sum1 = 0, sum2 = 0, sum3 =0
for i in range(3, 1000):
sum1 = sum1 + i
i = i + 3
for j in range(5, 1000):
sum2 = sum2 + j
j = j + 5
for k in range(15, 1000):
sum 3 = sum 3 + k
k = k + 15
print("sum1 + sum2 + sum3)
int main(){ int i; int sum = 0; for(i = 1 ; i <= 1000; i++){ if(i%3 == 0 || i%5 == 0) sum += i; } printf("%d\n",sum); }
Number = int(input())
NumberList = [i for i in range(Number) if i % 3 == 0 or i % 5 ==0]
print(sum(NumberList))
int main(void) { int sum=0; for(int i=1;i<1000;i++) { if(i%3==0||i%5==0) sum += i; } printf("%d\n", sum); }
사실 이 문제에서 Numpy를 import 하는 것은 사치일 수 있으나 한번 해봤습니다. for문을 사용하지 않고 배수와 집합을 이용하여 문제를 풀었습니다. (나머지를 이용하면 결국 for문을 쓰는 방법 밖에 생각이 안 났습니다. 좋은 아이디어가 있으시면 공유 부탁드립니다.)
import numpy as np
sum(set(list(3 * np.array(range(1,int(999/3)+1)))+list(5 * np.array(range(1,int(999/5)+1)))))
한 줄로 입력하면 위와 같이 쓰면 풀 수 있습니다. 그러나 범위나 배수를 정해주고 싶을 수 있으니 다음과 같이 쓸 수 있습니다.
import numpy as np
lim = 1000
lim = lim-1
a = 3
b = 5
multiple_a = a * np.array(range(1,int(lim/a)+1))
multiple_b = b * np.array(range(1,int(lim/b)+1))
sum(set(list(multiple_a)+list(multiple_b)))
해당 코딩에서는 input을 활용하여 원하는 값을 넣거나 3가지 배수의 합을 찾아보도록 응용할 수 있습니다.
public class ex1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
print(1000,3,5);
}
private static void print(int natural,int ii, int jj) {
// TODO Auto-generated method stub
int k =natural;
int sum = 0;
for(int i=0; i<k; i++){
if(i%ii == 0 || i%jj ==0){
System.out.println(sum =sum+i);
}
}
}
}
# 1000까지 3과 5의 배수 더하기
# or을 써서 중복된 부분 제거
result_sum = sum([x for x in range(1000) if x % 3 == 0 or x % 5 == 0])
print(result_sum)
public class SumMultipleof {
public static void main(String[] args) {
int t = 3, f = 5;
int sum = 0;
int n, j;
System.out.println("3, 5의 배수");
for (n = 1; n <= 333; n++) {
if ((t * n) % 5 == 0)
continue;
System.out.println("3*n : " + t * n);
sum += (t * n);
}
for (j = 1; j < 200; j++) {
System.out.println("5*n : " + f * j);
sum += (f * j);
}
System.out.println("3,5의 배수의 sum = " + sum);
}// main
}// class
//3과 5의 공동배수는 제외하고 합하였음.
public class Ex01 {
public static void main(String[] args) {
int hap = 0;
for (int i = 0; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0) {
hap = hap + i;
}
}
System.out.println("1부터 1000까지의 3의 배수와 5의 배수의 합은 " + hap + "입니다.");
}
}
int main() { int i=0,sum=0; for(i=0;i<999;i++) { if( i%3 ==0 || i%5 ==0) sum+=i; } printf("%d",sum) return 0}
result = 0
for i in range (1,1000):
if i % 3 == 0 or i % 5 == 0:
print (i)
result += i
print(result)
#include <stdio.h>
int main(void)
{
int i;
int total = 0;
for (i = 3; i < 1000; i++)
{
if (i % 3 == 0)
{
total += i;
}
else if (i % 5 == 0)
{
total += i;
}
}
return 0;
}
이러면 15의 배수가 중복으로 더해지지 않음
a = [] # 빈 리스트를 생성
for i in range(1,1001):
if i % 3 == 0 or i % 5 == 0:
a.append(i)
# 리스트 a안의 요소를 모두 더함.
print(sum(a))
실행 시간 : 15.60ms 파이썬 3.7 기준으로 작성한 것입니다.
# 복합식
def mulSum(a, b, r):
result = 0
for i in range(1, r):
if i % a == 0 or i % b == 0:
result += i
print(f"Sum of all the multiples of {a} or {b} below {r} is {result}.")
mulSum(3, 5, 1000)
'Sum of all the multiples of 3 or 5 below 1000 is 233168.'
# 간단식
def mulSum(a, b, n):
result = sum([i for i in range(n) if (i % 3 == 0) or (i % 5 == 0)])
print(f"Sum of all the multiples of {a} or {b} below {n} is {result}.")
mulSum(3, 5, 1000)
'Sum of all the multiples of 3 or 5 below 1000 is 233168.'
python
r1 = 3 * (333 * 334) / 2
r2 = 5 * (199 * 200) / 2
r3 = 15 * (66 * 67) / 2
print(r1 + r2 - r3)
public class Main {
public static void main(String[] args) {
/**
* 10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다.
* 1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
* */
int sum = 0;
for (int i = 0; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0)
sum += i;
}
System.out.println("합계 : " + sum);
}
}
합계 : 233168
일단 생각나는데로 적긴 했는데.. 더 좋은 방법도 고민해봐야겠다.
sum = 0
i = 0
for i in range(1000):
if i % 3 == 0 or i % 5 == 0:
sum = sum + i
print(sum)
처음이라 이것도 어렵네요....
num = []
for n in range(3,1000):
if (n%3 == 0):
num.append(n)
elif (n%5 == 0) and (n%3 !=0):
num.append(n)
else:
pass
print(sum(num))
짧게 쓰시는 분들 보면 정말 대단합니다ㅎㅎㅎㅎ
#include <stdio.h>
int main(void) {
result = 0;
for(int i = 0; i < 1000; i++){
if(i % 3 == 0) {
result += i;
}
else if(i % 5 == 0) {
result += i;
}
printf("%d", result);
}
total = 0
for num in range(1,1000):
if num % 3 == 0 or num % 5 == 0:
total += num
print(total)
파이썬3 이용
i = 1
sum = 0
while i <= 333:
m3 = 3 * i
m5 = 5 * i
i = i + 1
if m5 <= 1000:
sum = sum + m5 + m3
else :
sum = sum + m3
print(sum)
#1
#1000미만의 자연수에서 3,5 배수의 총합을 구하라.
result=0
for i in range(1000):
if i%3==0 or i%5==0:
result+=i
print (result)
total = 0
for num in range(1000):
if num %3 == 0 or num %5 == 0:
total += num
print(total)
파이썬 첫 연습문제로 풀어보았습니다~
package codingdojang;
public class Oiler {
public static void main(String[] args) {
int sum = 0;
for(int i = 3;i<1000;i++) {
if(i%3 == 0 | i%5 == 0)
sum += i;
}
System.out.println("SUM = "+sum);
}
}
public class Multiples_of_3and5 {
public static void main(String[] args) {
int answer = 0;
for(int i=1; i<1000; i++)
{
if(i%3==0 || i%5==0)
answer += i;
}
System.out.println(answer);
}
}
public class Multiplesof3and5 {
public static void main(String[] args) {
int sum = 0;
for(int i=1 ; i<1000 ; i++) {
if(i%3 == 0 || i%5 == 0) {
sum = sum + i;
}
}
System.out.println("1000미만의 자연수에서 3,5의 배수의 총합은? "+ sum);
}
}
결과는 233168 입니다
package problem05;
public class solution {
public static void main(String[] args) {
int sum=0;
for(int i=1 ; i<1000 ; i++) {
if(i%3==0 || i%5==0) {
sum+=i;
}
}
System.out.println(sum);
}
}
int main() {
int sum = 0;
for (int i = 1; i < 1000; i++) {
if ((i % 3 == 0) || (i % 5 == 0)) sum += i;
}
printf("%d\n", sum);
}
233168 입니다.
a = list(range(0,1000,3)
b = list(range(0, 1000, 5)
c = list(range(0, 1000, 15)
d = a + b - c
print(d)
초보입니다.{.python}
s = 0
a = range(1,1000)
for i in a:
if i%3 == 0:
s += i
elif i%5 == 0:
s += i
else: pass
print(s)
print ("1000미만의 자연수에서 3,5의 배수의 총합을 구하라.")
sum = 0
for i in range (1, 1000) :
if (i % 3 == 0 or i % 5 == 0) :
sum += i
print(sum)
public static void main(String[] args) {
int sum=0;
for(int i=1;i<1000;i++) {
if(i%3==0||i%5==0) {
System.out.println(i);
sum+=i;
}
}
System.out.println(sum);
}
#include <stdio.h>
int main()
{
int i,n,sum=0;
scanf("%d",&n);
for (i=0;i<n;i++){
if ((i%3==0)||(i%5==0)) sum+=i;
}
printf("%d",sum);
}
public int sub(int p_InNum) { int iResult = 0;
for (int i = 0; i < p_InNum; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
Console.Write("{0} ", i);
iResult += i;
}
}
Console.WriteLine("");
return iResult;
}
result = 0
for num in range(1,1000):
if num % 3 == 0:
result += num
elif num % 5 == 0:
result += num
print(result)
num = list(range(1,1000))
three = []
five = []
for a in num:
if a % 3 == 0:
three.append(a)
if (a % 3 == 0) and (a % 5 == 0):
num.remove(a + 1)
elif a % 5 == 0:
five.append(a)
both = three + five
sum = 0
for a in both:
sum += a
print(sum)
와 한줄짜리도 있네요....대단
cnt = 1
numlist = []
while cnt < 1000:
if cnt%3==0 or cnt%5==0:
numlist.append(cnt)
cnt += 1
print(sum(numlist))
#include <iostream>
using namespace std;
int main() {
int a = 0, b = 0, c = 0;
for (int i = 1; i <= 333; i++)
a += 3*i;
for (int i = 1; i <= 199; i++)
b += 5*i;
for (int i = 1; i < 66; i++)
c += 15*i;
int sum = a + b - c;
cout << "The sum is " << sum << endl;
system("PAUSE");
return 0;
}
total = 0
for i in range(1, 1000):
if not i%3 or not i%5:
total += i
print(total)
한줄로 짜신분들도 많으시네요...
def multiples(a, b):
list_a = []
list_b = []
for i in range(1, 1000):
if i % a == 0:
list_a.append(i)
elif i % b == 0:
list_b.append(i)
final_list = set(list_a + list_b)
result = sum(final_list)
return result
####### EXECUTION ########
print(multiples(3, 5))
class Program
{
static void Main(string[] args)
{
Console.WriteLine(GetSum(1000));
Console.ReadKey(true);
}
static int GetSum(int num)
{
return Enumerable.Range(0, num).ToArray()
.Where(x => x % 3 == 0 || x % 5 == 0).Sum();
}
}
static void Main(string[] args)
{
int sum = 0;
for (int i = 0; i < 1000; i++)
{
if (i % 3 == 0 || i % 5 == 0)
sum += i;
}
Console.WriteLine(sum.ToString());
return;
}
int main (void) { int ass=0; int asss=0; while(1000) { ass++; if(ass%5) { asss+=ass;
} else if (ass%3) { asss+=ass; } } printf("%d",&asss); return 0; }
int main() { int sum = 0;
for (int i = 0; i<1000; i++) {
if (i % 3 == 0 || i % 5 == 0)
sum += i;
}
printf("%d\n", sum);
return 0;
}
sum = 0
for i in range(1000):
if i % 3 == 0 and i % 5 == 0:
sum += i
elif i % 3 == 0 or i % 5 == 0:
sum += i
print(sum)
input1 = int(input('Enter first number? 첫 번째 배수다람쥐~')) input2 = int(input('Enter second number? 두 번째 배수다람쥐~')) input3 = int(input('Enter range? 입력하신 숫자 미만까지 계산할게에요!'))
def sumV(n1,n2,range_of_numbers) : numberlist = list() for number in range(1,range_of_numbers) : numberlist.append(number)
sum1=0
sum2=0
sum3=0
for number1 in numberlist :
if number1 % n1 == 0 :
sum1 += number1
for number2 in numberlist :
if number2 % n2 == 0 :
sum2 += number2
for number3 in numberlist :
if number3 % (n1 * n2) == 0 :
sum3 += number3
result = sum1 + sum2 - sum3
return result
print(sumV(input1,input2,input3))
i=0
sum=0
while i<1000:
i=i+1
if i%3==0:
sum=sum+i
if i%5==0:
sum=sum+i
if i%15==0:
sum=sum-i
print(sum)
public class Multiples {
public static void main(String args[]){
int tot = 0;
for(int i=0; i<1000; i++){
if(i%3==0||i%5==0){
tot += i;
}
}
System.out.println("총 : "+ tot);
}
}
def div(a):
b = 0
i = 0
while i < a:
if i % 3 == 0 :
b+= i
else:
if i % 5 == 0 :
b+= i
else:
b+= 0
i+=1
return b
print(div(1000))
int a = 1000;
int answer = 0;
for(int i = 0; i < a; i++)
{
if(i%3 == 0)
answer += i;
else if(i%5 == 0)
answer += i;
}
cout << "1000 미만의 자연수에서 3, 5의 배수의 총합은 " << answer << endl;
num = 1 total = 0
while num < 1000: if num % 3 == 0 or num % 5 == 0: total += num num += 1
print(total)
Scanner scan = new Scanner(System.in);
int num = scan.nextInt();
int count = 0;
int sum = 0;
for (int i = 0; i < num; i++) {
if (i % 3 == 0) {
count++;
sum += i;
}
if (i % 15 != 0) {
if (i % 5 == 0) {
count++;
sum += i;
}
}
}
System.out.println("count : "+count);
System.out.println("sum :" +sum);
#include <stdio.h>
int main() {
int sum = 0;
int i, j, k = 0;
// 3의 배수의 합
for (i = 0; i < 1000; i++)
{
if (i % 3 == 0)
{
sum = sum + i;
}
}
//5의 배수의 합
for (j = 0; j < 1000; j++)
{
if (j % 5 == 0)
{
sum = sum + j;
}
}
// 공배수 15의 배수는 빼줘야합니다.
for (k = 0; k < 1000; k++)
{
if (k % 15 == 0)
{
sum = sum - k;
}
}
return sum;
}
max_num = 1000
result = 0
for i in range(max_num):
if i % 3 == 0 or i % 5 == 0:
result += i
print(result)
int main(void) { int num=0;
for (int i = 0; i < 1000; i++)
{
if ((i % 3 == 0) || (i % 5 == 0))
{
num += i;
}
}
printf("%d\n", num);
return 0;
}
def f(n): i=1 sum=0 while i < n: if (i%3 == 0 ) or (i%5 == 0 ): sum = sum + i else: sum = sum + 0 i = i+1
return sum
c = f(1000) print (c)
def f(n):
i=1
sum=0
while i < n:
if (i%3 == 0 ) or (i%5 == 0 ):
sum = sum + i
else:
sum = sum + 0
i = i+1
return sum
c = f(1000)
print (c)
def f(n):
sum=0
for i in range (1, n):
if (i%3 == 0 ) or (i%5 == 0 ):
sum += i
return sum
c = f(1000)
print (c)
table = [0] * 1001
for i in range(3,1000,3):
index = i -1
table[index] = i
for i in range(5,1000,5):
index = i -1
table[index] = i
num_list = []
for elem in table:
if elem != 0:
num_list.append(elem)
total_sum = sum(num_list)
print(total_sum)
def fun(num):
lst = []
for i in range(num):
if i % 3 == 0 or i % 5 == 0:
lst.append(i)
return sum(lst)
using namespace std;
int main() { int sum = 0; for (int i = 1; i < 1000; i++) { if (i % 3 == 0 || i % 5 == 0) sum += i; } cout << "1000 미만 3과 5의 배수의 합 : " << sum << endl; return 0; }
#include <iostream>
using namespace std;
int main()
{
int sum = 0;
for (int i = 1; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0)
sum += i;
}
cout << "1000 미만 3과 5의 배수의 합 : " << sum << endl;
return 0;
}
#include <stdio.h>
int main()
{
int sum = 0, i = 0;
for(i=0; i<1000; i++)
{
if(i%3==0)
sum = sum + i;
else if(i%5==0)
sum = sum + i;
}
printf("%d", sum);
}
sum=0
numbers=0
for i in range(1000-1):#1000미만 잡고(걍 999넣으셔두 되구요!)
numbers+=1#1 더해서
if numbers%3==0 or numbers%5==0:#3의 배수거나 5의배수면!!
sum+= numbers #sum이라는 변수에 더해줍니다
print(sum)#더한 총 값을 출력해주면!!!!!
233168!!!똬단!!!!
sum = 0 count = 1 while count <=1000 : if (count % 3 == 0 or count % 5 == 0): sum += count count += 1 print('sum: ', sum)
sum = 0 for i in range(1,1000,1): if (i%3 == 0 or i%5 == 0): sum +=i print('sum: ', sum)
set3 =set(range(3,1000,3)) set5 =set(range(5,1000,5))
settotal = sum(set3 | set5) print('settotal: ', settotal)
def FindThree() : result=[] i = 1 while i * 3 < 1000 : result.append(i * 3) i = i + 1 return result
def FindFive() : result = [] i = 1 while i * 5 < 1000 : result.append(i * 5) i = i + 1 return result
def FindOL(lst1,lst2) : overlap =[] for i in range(len(lst1)) : if lst1[i] in lst2 : overlap.append(lst1[i]) return overlap
three = FindThree()
five = FindFive()
last = FindOL(three, five)
print(sum(three) + sum(five) - sum(last))
void main(){ int start; int end; int ans = 0; int fir, sec; int i;
printf("시작값 입력 : ");
scanf("%d", &start);
printf("종료값 입력 : ");
scanf("%d", &end);
printf("나눔1값 입력 : ");
scanf("%d", &fir);
printf("나눔2값 입력 : ");
scanf("%d", &sec);
for(i=start; i<end; i++){
if(i%fir == 0){
ans+=i;
printf("TEST01:%d \t", i);
}
else if(i%sec == 0){
ans+=i;
printf("TEST02:%d \t", i);
}
}
printf("\n 정답: %d\n", ans);
}
package codeac;
public class codetest {
public static void main(String[] args) {
// TODO Auto-generated method stub
int resome = 0;
for(int i = 0; i < 1000; i++){
if(i%3 == 0 || i%5 == 0){
resome += i;
}
}
System.out.println(resome);
}
}
비쥬얼스튜디오로 작성했습니다. 첨 봤을땐 어려워보였는데 이제 쉽네요
#include <stdio.h>
#include <iostream>
using namespace std;
void main() {
int sum = 0;
for (int i = 1; i < 1000; i++)
{
if (i % 3 == 0)
{
sum += i;
}
else if (i % 5 == 0)
{
sum += i;
}
}
printf("%d", sum);
}
#include <stdio.h>
#define SOM(x) ( x*((999/x)+1)*(999/x)/2 )
int main(void) {
printf("%d", SOM(3)+SOM(5)-SOM(15));
}
C로 짰는데 C는 선택이 없네요. 3의 배수의 합과 5의 배수의 합을 더하고 15의 배수의 합을 뺐습니다. 각각 배수의 합을 구하는 과정은 3의 배수를 예를 들면 3(1+...+333(=999/3))인 것을 이용하여 3(333+1)333/2로 구하였습니다. 기본적으로 integer형으로 형변환이 되기 때문에 999/5도 정수인 199로 나오게 되어 5(1+...+199)의 형태가 됩니다.
int main(void) { int n=1,sum=0; while(n<1000) { if((n%3==0)||(n%5==0)) {
sum+=n;
}
n++;
}
printf("%d",sum);
return 0;
}
#include <stdio.h>
int main()
{
int n=0,i;
for(i=1;i<=1000;i++)
{
if(i%3==0 || i%5==0)
{
n+=i;
}
}
printf("%d",n);
}
int main () { int i,j; int num1[]={0,},num2[]={0,},sum=0; for(i=1;i3<1000;i++) { num1[i] =3i; sum+=num1[i]; } for(i=1;i5<1000;i++) {num2[i] =5i; for(j=1;j<sizeof(num1);j++) { if(num2[i] == num1[j]) {num2[i] =0; } } sum+=num2[i]; } printf("%d",sum); return 0; }
int main() { int result=0; for(int i=0;i<100;i++) { if (i % 3 == 0 || i % 5 == 0) result += i; } printf("%d\n", result); return 0; }
public class Study_0331_2 {
/*Quiz1.10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다.이들의 총합은 23이다.1000미만의 자연수에서 3,5의 배수의 총합을 구해라
*/
//int num=0;
public static void main(String[] args) {
int num=0; //출력될 변수 num으로 지정
int sum=0; //num의 총합을 나타낼 변수를 sum으로 지정
for (int i=1; i<1000; i++) { //for문을 이용해 1000미만의 다음 조건을 실행해라
num=num+1;
if(num%3==0 || num%5==0) { //num을 3과 5로 나누었을때 나머지가 0인 경우
System.out.println(num); //num의 값을 출력해라
sum=sum+num; //출력될 num의 총값을 sum에 저장해라
}
}
System.out.println("전체 총합은 "+sum); //sum의 값을 출력해라
}
}
'''javascript const sum = 0
for (let i = 0; i < 1000; i++) { if (i % 3 === 0 || i % 5 === 0) sum += i }
console.log(sum) '''
public int sumMultiple(int inputNum) {
return IntStream.range(0, inputNum).filter(num -> num % 3 == 0 || num % 3 == 0).sum();
}
Java. 정답 : 233168
#include <stdio.h>
int main ()
{
int i,count=0;
for(i=1;i<1000;i++)
{
if(i%3==0 || i%5==0)
count+=i;
}
printf("%d",count);
return 0;
}
#include<stdio.h>
int main()
{
int num1=1;
int num2=1;
int sum1=0;
int sum2=0;
int sum3;
while (num1 < 999 && num2 < 999) //num1<1000 으로 하게되면 ++명령어에의해 1000도 포함이 되버림.
{
++num1;
++num2;
if (num1 % 3 == 0)
sum1 += num1;
else if (num2 % 5 == 0)
sum2 += num2;
}
sum3 = sum1 + sum2;
printf("10미만 3의배수와 5의배수들의 합은:%d\n",sum3);
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int sum=0;
for(int i=1; i<1000; i++)
{
if(i%3==0 || i%5==0)
sum += i;
}
cout << "3, 5의 배수의 총합 : " << sum << endl;
return 0;
}
C++로 작성하였습니다.
파이썬 초보입니다!
to 이하의 n 과 m의 배수들을 모두 더하는 (공배수는 한번만 더한다) 함수를 만들었습니다.
초보인 만큼 최근 배운것을 토대로 최대한 낮은 차원의,,? 것들로 코드를 구성했습니다..
def add_multiples_of_two_num(n,m,to):
def get_multiples(num, to):
i = 1
multiples = []
while num * i < to:
multiple = num * i
multiples.append(multiple)
i+=1
return multiples
multiples_1=get_multiples(n, to)
multiples_2=get_multiples(m, to)
return sum(set(multiples_1+multiples_2))
print(add_multiples_of_two_num(3,5,1000))
#Multiples of 3 and 5
result = 0
for i in range(1,1000):
if i % 3 == 0 or i % 5 == 0:
result += i
print(result)
#include<stdio.h>
int main()
{
int sum=0;
for (int i = 1; i < 1000; i++)
{
if ((i % 3 == 0 && i % 5 == 0)) sum -= i;//포함-배제의 원리(15의 배수는 2번 더해지므로 1번 빼기)
else if (i % 3==0 || i % 5==0) sum += i;//3의 배수 또는 5의 배수라면 i를 더함
}
printf("%d", sum);//더한 값 출력
return 0;
}
#10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다.
#1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
sum = 0
for i in range(1,1000):
if (i % 3 == 0) or (i % 5 == 0):
sum = sum+i
print(sum)
multiset=set()
multisum=0
i=1
while (i*3 <1000 or i*5<1000):
if i*3 < 1000:
multiset.add(i*3)
if i*5 < 1000:
multiset.add(i*5)
i+=1
for a in multiset:
multisum += a
print(multisum)
#include <iostream>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char** argv) {
int a = 0, b = 0, c = 0, i = 0, j = 0, k = 0;
for(c = 3; c <= 1000; c+=3)
{
a+=c; i++;
}
for(c = 5; c <= 1000; c+=5)
{
b+=c; j++;
}
c = a+b; k = i+j;
printf("3 = %d, 5 = %d, 3+5 = %d\ncounter 3 = %d, 5 = %d, 3 + 5 = %d\n",a,b,c,i,j,k);
return 0;
}
package test0419;
public class Main {
public static void main(String[] args) {
int i, sum = 0;
for (i = 0; i < 1000 ; i++) {
if(i % 3 == 0 || i % 5 == 0) {
sum += i;
}
}
System.out.println("1000미만의 자연수에서 3,5의 배수의 총합은: " + sum + " 입니다.");
}
}
10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다.
1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
def solution(n): # n이하의 자연수 중 3, 5의 배수의 합을 구하는 함수 lis = [] answer = 0 for i in range(n): if i % 3 == 0: lis.append(i) elif i % 5 == 0: lis.append(i) return sum(lis)
int main() { int n, sum = 0; for(n = 0; n < 1000; n++){ if((n % 3 == 0) || (n % 5 == 0)) sum += n; } printf("%d", sum); }
public class Multiple3Of5 { public static void main(String[] args){ int a = 3, b = 5; int sum = 0; for(int i = 1; i < 1000; i++){ if( (i % a) == 0 || (i % b) == 0){ sum += i ; } } System.out.println("sum :" + sum); } }
set3=set(i for i in range(1001) if int(i%3)==0) set5=set(i for i in range(1001) if int(i%5)==0)
ans=list(set3|set5)
print(sum(ans))
public class Multiples {
public static void main(String[] args) {
int a = 3;
int b = 5;
int sum = 0;
for (int i = 2; i < 1000; i++) {
if (i % a == 0 || i % b == 0) {
sum += i;
}
}
System.out.println("3, 5의 배수 총합 : " + sum);
}
}
N = 0
sum = 0
while N<999:
N += 1
if N % 3 == 0 or N % 5 == 0:
print("%d" %N)
sum = sum + N
print(sum)
old_func O(N), new_Func O(1)
#include <iostream>
using namespace std;
int sumOf1ToN (int N)
{
return N * (N+1) /2;
}
int old_func (int N)
{
int ret = 0;
for(int i = 1 ; i < N ; i++)
{
if(i % 3 == 0 || i % 5 == 0)
ret += i;
}
return ret;
}
int new_func(int N)
{
int ret;
int numOf3, numOf5, numOf15;
N = N -1; // N 미만
numOf3 = N /3;
numOf5 = N /5;
numOf15 = N /15;
ret = 3*sumOf1ToN(numOf3) + 5*sumOf1ToN(numOf5) - 15 * sumOf1ToN(numOf15);
return ret;
}
int main()
{
cout << old_func(1000) << endl;
cout << new_func(1000) << endl;
return 0;
}
function solution number(s){ var i = 0; for( i = 0; 3i <= 1000; i++; 3i = x;){ for( i = 0; 5i <= 1000; i++; 5i = n;){ } return x + y; }
public static void main(String[] args) { int sum=0; for(int i=1; i<1000; i++) if(i%3==0 | i%5==0) { sum += i; } System.out.println("3과 5의 배수의 합 : " +sum);
}
3과 5의 배수의 합: 233168
a,b,c = 0,0,0
for i in range (0,1000,3) :
a += i
for i in range (0,1000,5) :
b += i
for i in range (0,1000,15):
c += i
print (a+b-c)
#include <stdio.h>
int main(void)
{
int i = 0 , p = i;
for ( ; i < 1000; i++)
{
if ( i%3 == 0 || i % 5 ==0 )
p += i;
}
printf("총합은%d \n", p);
return 0;
}
#include <stdio.h>
void main(){
int positive_integer;
int sum_of_multiples_of_three_and_five = 0;
for(positive_integer = 1; positive_integer < 1000; positive_integer++)
{
if(positive_integer % 3 == 0 || positive_integer % 5 == 0)
sum_of_multiples_of_three_and_five = sum_of_multiples_of_three_and_five + positive_integer;
}
printf("Total sum of multiples of 3 and 5 : %d", sum_of_multiples_of_three_and_five);
}
sum1= 0
for i in range(1000): if (i % 3 == 0) or (i % 5 ==0) : list1.append(i) sum1 += i
print(sum1)
```{.python}''' sum = 0
for i in range(1000): if i % 3 == 0: sum += i elif i % 5 == 0: sum += i
print(sum)
public class Multiple {
public static void main(String[] args) {
System.out.println("hi");
int answer=0;
for(int i = 0; i < 1000; i++) {
if(i%3 == 0 || i%5 ==0) {
answer += i;
}
}
System.out.println(answer);
}
}
#include <stdio.h>
int main()
{
int sum = 0, three = 0, sum2 = 0, five = 0, sum3=0, fifteen=0;
while (three < 1000)
{
sum += three;
three += 3;
}
while (five < 1000)
{
sum2 += five;
five += 5;
}
while (fifteen < 1000)
{
sum3 += fifteen;
fifteen += 15;
}
printf("1000미만의 3의 배수와 5의 배수의 총 합은 %d 이다.", sum + sum2 - sum3);
return 0;
}
코드 선택에 c언어가 없어서 c++로 선택했습니다! 저는 단순하게 while문을 이용해서 3의 배수 구하고 5의 배수 구한뒤 15의 배수를 빼줌으로써 답 233168 이 나왔습니다.
#1000미만의 3,5의 배수의 합
# 3의 배수 구하기
list1 = []
list2 = []
i = 0
j = 0
total_sum_list = 0
#3의 배수 리스트 생성
while i < 1000:
if i % 3 == 0:
list1.append(i)
i += 1
#5의 배수 리스트 생성 중 3의 배수와 중복 숫자는 제외
while j < 1000:
if j % 5 == 0 and j % 15 != 0:
list2.append(j)
j += 1
#합계 리스트 생성
sum_list = list1 + list2
sum_list.sort()
# 합계 구하기
for index in range(len(sum_list)):
total_sum_list += sum_list[index]
print(total_sum_list)
import numpy as np
b=[]
a=np.arange(1,1000,1)
for i in a:
if i%3==0 or i%5==0:
b.append(i)
else:
pass
print(np.sum(b))
답 233168
#include <stdio.h>
int main()
{
int sum = 0;
int overlap = 0;
for (int i = 1; i * 3 < 1000; i++)
{
int threen = 3 * i;
if (threen % 5 == 0)
{
overlap += threen;
}
sum += threen;
}
for (int j = 1; j * 5 < 1000; j++)
{
int fiven = 5 * j;
sum += fiven;
}
printf("100미만의 자연수에서 3,5의 배수의 총합은 : %d\n", sum - overlap);
return 0;
}
C언어
lst15 = []
lst3 = []
lst5 = []
for i in range(1000):
if i%15 ==0:
lst15.append(i)
elif i%3 ==0:
lst3.append(i)
elif i%5 ==0:
lst5.append(i)
else:
continue
print sum(lst3)+sum(lst5)+sum(lst15)
def three_five():
for i in range(1000):
total = 0
if i % 3 == 0 or i % 5 == 0:
total += i
return total
print(three_five())
input1 = int(input("최대치를 입력해주세요: "))
input2 = input("원하는 배수를 입력해주세요(','로 구분): ")
numbers = input2.split(",")
def shsh(num,list):
group = set([])
for i in list:
for y in range(1,int((int(num)-1)/int(i))+1):
p = int(i) * int(y)
group.add(p)
result = 0
for j in group:
result = result + j
return result
print(shsh(input1,numbers))
python ver 3.7
ans : 233168
def sumOfMultiples(num1,num2,end=1000): # num1, num2 are integers
sum=0
for num in range(end):
if num % num1 ==0 or num % num2 == 0:
sum = sum+ num
return sum
print(sumOfMultiples(3,5))
numbers = []
adds = 0
for i in range(1, 1000):
if i % 3 ==0 or i % 5 ==0:
numbers.append(i)
adds = adds + i
else:
continue
print(adds)
답 : 233168
var result= 0;
function sum() {
for(var i = 1;i < 1000; i++) {
if(i % 3 === 0 || i % 5 === 0) {
result += i;
}
}
}
sum();
print("Enter number")
m = int(input())
sum = 0
list_n = range(m)
print("We are calculating the sum of the multiples of 3 or 5 below " + str(m))
for n in list_n:
if n % 15 == 0:
sum += n
elif n % 3 == 0:
sum += n
elif n % 5 == 0:
sum += n
print("The sum of the multipes of 3 and 5 is " + str(sum))
a=range(0, 1000) def Cal(): result=0 for item in a: if item%3==0 or item%5==0: result = result+item return result
print(Cal())
num_list = []
for i in range(1,1000):
if i % 3 == 0 or i % 5 ==0:
num_list.append(i)
print(num_list)
sum = 0
for i in num_list:
sum += i
print("Total sum is %i" %sum)
결과는 233168
#include <iostream>
using namespace std;
#define MAX 1000
int main()
{
int re = 0;
for(int i = 0 ; i < MAX ; i++)
{
if(num%3==0 || num/5 ==0)
re += num;
}
cout << re << endl;
return 0;
}
s = 0
for x in range(1,1000):
if x%3 == 0:
s = s + x
if x%5 == 0:
s = s + x
s2 = 0
for x in range(1,1000):
if x%15 == 0:
s2 = s2 + x
print(s - s2)
파이썬 배운지 일주일 째라 모든게 신기한데, 다른 분들이 무슨 말씀하시는지 몰라서 그냥 제 방식 한 번 적어 봅니다ㅋㅋ 이런게 처음이라 효율이고 뭐고 마냥 뿌듯하기만 하네요ㅋㅋㅋㅋㅋㅋ
등차수열의 합 이용 초항 = 3, 등차 = 3인 등차수열(An = 3n)의 333번째 항(999)까지 합 + 초항 = 5, 등차 = 5인 등차수열(An = 5n)의 199번째 항(995)까지 합 - 초항 = 15, 등차 =15인 등차수열(An = 15n)의 66번째 항(990)까지 합
def answer(maxNum):
n1 = maxNum // 3
n2 = maxNum // 5
n3 = maxNum // 15
return (n1 * (n1 + 1) * 3 * 0.5) + (n2 * (n2 + 1) * 5 * 0.5) - (n3 * (n3 + 1) * 15 * 0.5)
파이썬이에요 sum = 0
for num in range(1000): if num%3 == 0 or num%5 == 0: sum = sum + num print(sum)
public class multiple {
public static void main(String[] args) {
int sum = 0;
for(int i=1; i<100; i++) {
if(i%3==0 || i%5==0)
sum += i;
}
System.out.println(sum);
}
}
C로 처음 짜보았어요
#include <stdio.h>
int main(void)
{
int i = 0, sum = 0;
for (i = 0; i < 1000; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
sum += i;
}
}
printf("1000미만 3과5의 배수의 합은: %d", sum);
return 0;
}
result=0
for i in range(1, 1001):
if i%3==0:
result+=int(i)
elif i%5==0:
result+=int(i)
else:
continue
print(result)
#include <stdio.h>
#define N 1001
int main(void)
{
int i, sum = 0;
for(i=1; i<N; i++)
{
if(i%3==0 || i%5==0)
{
sum += i;
}
printf("3과 5의 배수의 합은 %d입니다.\n", sum);
}
return 0;
}
/*
C언어로 작성
*/
#include <stdio.h>
#define MAXNUM 1000
int main ()
{
int i, sum=0;
for(i=1 ; i<MAXNUM ; i++) // 1이상 MAXNUM 미만
{
if(i%3==0 || i%5==0)
sum+=i;
}
printf("sum : %d",sum);
return 0;
}
int Test(int target)
{
var sum = 0;
for (int i = 0; i < target; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
sum += i;
}
}
return sum;
}
i = 1
a = []
result = 0
while i < 1000:
if i % 3 == 0 or i % 5 == 0:
a.append(i)
else:
pass
i += 1
for i in a:
result += i
print(result)
print(sum([i for i in range(1,1000) if i % 3 == 0 or i % 5 == 0 ]))
python 3.7.3
답 : 233168
3이나 5로 나누어 나머지가 0되는것만 더했습니다
result = []
for i in range(1, 1000):
if i % 3 == 0 or i % 5 == 0:
result.append(i)
print(sum(result))
mul_3 = []
for i in range(1001):
if i % 3 == 0:
mul_3.append(i)
#print(mul_3)
sum_3 = 0
for j in mul_3:
sum_3 += j
print("sum_3 is {}".format(sum_3))
mul_5 = []
for i in range(1001):
if i % 5 == 0:
mul_5.append(i)
#print(mul_5)
sum_5 = 0
for j in mul_5:
sum_5 += j
print("sum_5 is {}".format(sum_5))
mul_15 = []
for i in range(1001):
if i % 15 == 0:
mul_15.append(i)
#print(mul_15)
sum_15 = 0
for j in mul_15:
sum_15 += j
print("sum_15 is {}".format(sum_15))
ans = sum_3 + sum_5 - sum_15
print("The answer is {}".format(ans))
public class a{
public static void main(String args[]) {
int sum = 0;
for (int i = 1; i < 1000; i++) {
if(i%3 == 0 || i%5 == 0)
sum += i;
}
System.out.println(sum);
}
}
java
a = 0
b = 0
for i in range(0,1000,3):
if(i>0):
a = a + i
for i in range(0,1000,5):
if(i>0):
b = b + i
c = a + b
public class Multiples {
public static void main(String[] args) {
int Five = 5, Three = 3;
int sum=0;
for (int i = 1; i < 1000; i++) {
if (i % Five == 0)
sum+= i;
if (i % Three == 0)
sum+= i;
if (i % 15 == 0)
sum-=i;
}
System.out.println(sum);
}
}
total = 0
for i in range(1000):
if i % 3 == 0 or i % 5 == 0:
print (total)
total += i
print(total)
이렇게 하긴 했는데 혹시 더 간단하게 풀수있는 방법이 있을까요...
set1 = set(x for x in range(1000) if x%3 ==0)
set2 = set(x for x in range(1000) if x%5 == 0)
sum(set1.union(set2))
#include <iostream>
using std::cout;
using std::endl;
int main()
{
int result = 0;
for (int i = 3; i < 1000; ++i)
{
if (i % 3 == 0 || i % 5 == 0)
result += i;
}
cout << result << endl;
}
처음해보는 거에요!
JAVA!
public class generator {
public static void main(String[] args)
{
int n,sum;
sum=0;
for(n=0;n<1000;n++)
{
if((n%3)==0 || (n%5)==0)
{
sum+=n;
}
}
System.out.println("합은 "+sum);
}
}
답은 233168!
function Multiples(num){
// num % 3 === 0 && num % 5 === 0
let result = [];
for(let i=1; i < num; i++){
if(i % 3 === 0 || i % 5 === 0){
result.push(i)
}
}
return result.reduce((acc, curr) => acc + curr)
}
sum3 = 0; sum5 = 0; sum15 = 0
for x in range(1, 1000) :
if (x % 3 == 0) :
sum3 += x
elif (x % 5 == 0) :
sum5 += x
elif (x % 15 == 0) :
sum15 += x
else :
continue
print(sum3 + sum5 - sum15)
public class q1 {
public static void main(String[] args) {
int sum=0;
for(int i=1;i<1000;i++) {
if(i%3==0) {
sum+=i;
}else if(i%5==0) {
sum+=i;
}
}
System.out.println(sum);
}
}
#include <stdio.h>
int main()
{
int a, b, c, i, sum = 0;
for (i = 1; i < 1000; i++)
{
if (i % 3 == 0)
sum += i;
if (i % 5 == 0)
sum += i;
if (i % 15 == 0)
sum = sum - i;
}
printf("%d", sum);
}
a=set([k for k in range(1,1000) if not k%3])
b=set([k for k in range(1,1000) if not k%5])
print(sum(a|b))
직접 풀어보고 다른 분들걸 보고 갑니다
많이 배워갑니다~
multiple=[]
for mul in range(1,1000):
if mul%3==0 or mul%5==0:
multiple.append(mul)
mul+1
else:
mul+1
print(multiple)
print(sum(multiple))
레벨1스럽게 기초에 충실하게 올려봅니다,,
#include <stdio.h>
void main()
{
int i, result=0;
for (i = 0; i < 1000; i++)
if (i % 3 == 0 || i % 5 == 0)
result += i;
printf("%d", result);
}
정답은 233168 입니다. ```
UpperLimit = 1000
result = 0
for i in range(1, UpperLimit):
if i % 3 == 0 or i % 5 == 0:
result += i
print(result)
python
public class MultiplesOf3and5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int num = 0;
int tot = 0;
for(int i=0;i<1000;i++) {
if(i%3==0||i%5==0) {
tot += i;
}
}
System.out.println(tot);
}
}
java 입니다.
MAX_NUM = 1000 sum = 0
for i in range(1, MAX_NUM): if i%5==0: sum += i elif i%3==0: sum += i
print(sum)
li = []
for i in range(1000):
if i % 3 == 0:
li.append(i)
elif i % 5 == 0:
li.append(i)
else:
pass
print(sum(li))
package multiplies_of_3and5;
public class Main { public static void main(String[] args) {
System.out.println("Result: " + sum(1000));
}
public static int sum(int target) {
int sum = 0;
for(int i = 1; i < 1000; i++) {
if(i%3==0 || i%5==0) {
sum += i;
}
}
return sum;
}
}
```{.java}
public class Practice_01 { public static void main(String[] args) { int a = 1; int result = 0 ;
while(a<=100) {
if(a % 3 == 0) // a가 3으로 나누어 지는 지 확인
result += a;
if(a % 5 == 0) //a가 5로 나누어지는지 확인
result += a;
if(a %3 == 0 || a % 5 == 0) // 중복 삭제
result -= a;
a++;
}
System.out.println("Answer is... " + result);
}
}
파이썬 집합이용
set3 = set(range(3,1000,3))
set5 = set(range(5,1000,5))
set3n5 = set3.union(set5)
list3n5 = list(set3n5)
result = 0
for l in list3n5:
result += l
print(result)
sumlist = list() for i in range(1,1000): if i%3 == 0: sumlist.append(i) if i%5 == 0: sumlist.append(i) print('정답 = ',sum(sumlist))
s1=list() s2=list()
interS=list()
for i in range (1,10): if(i%3==0): s1.append(i)
for i in range (1,10): if(i%5==0): s2.append(i)
setS1=set(s1) setS2=set(s2)
setinterS = set(interS) setinterS = setS1 | setS2
result = 0
for i in setinterS: result += i
print(result)
sum = 0
for n in range(1, 1000):
if n % 3 == 0 or n % 5 == 0:
sum += n
print(sum)
디버깅해보니깐 값은 맞는데 제대로 잘 한건지는 모르겠네용
#include <stdio.h>
int main(void) {
int sum = 0;
for(int i = 0; i < 1000; i++){
if(i % 3 == 0 || i % 5 == 0){
sum += i;
}
}
printf("%d", sum);
return 0;
}
int main(void) {
int num = 0;
int i;
for (i = 0; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0) {
num += i;
}
}
printf("합계:%d", num);
return 0;
}
numlist = [x for x in range(1000)]
result = filter(lambda x: x%3==0 or x%5==0, numlist)
print(sum(list(result)))
파이썬 초보입니다 filter lambda 말씀해주신 분이 계셔서 공부하고 짜봤어요
an = 0
for i in range(1000):
if i % 3 == 0 and i % 5 == 0:
an += i
elif i % 5 == 0:
an += i
elif i % 3 == 0:
an += i
print(an)
class series {
private int a, n, sum;
public int getSum (int a, int maxnum) {
this.a = a;
this.n = (maxnum - 1)/a;
sum = n * (2 * a + (n - 1) * a) / 2 ;
return sum;
}
}
public class seriesProb {
public static void main(String[] args) {
int answer;
series seriesOb = new series();
answer = seriesOb.getSum(3, 1000) + seriesOb.getSum(5, 1000) - seriesOb.getSum(15, 1000) ;
System.out.println("3과 5의 배수의 총합은 " + answer + "입니다.");
}
}
import java.text.DecimalFormat;
public class MultiplesOf3And5 {
public static void main(String[] args) {
final int maxValue = 1000;
final int maxLineCnt = 10;
DecimalFormat formatter = new DecimalFormat("###,###");
int n = 1;
int lineCnt = 0;
int sum = 0;
while (n < maxValue) {
if ((n%3 == 0)||(n%5 == 0)) {
sum = sum + n;
lineCnt++;
System.out.print(n);
if (n < maxValue-1) System.out.print("+");
else System.out.println("="+sum);
if (lineCnt%maxLineCnt == 0) {
System.out.println();
}
}
n++;
}
System.out.println("\nThe sum of all the multiples of 3 or 5 below " + maxValue + " : [ " + formatter.format(sum) +" ]");
}
}
public class multiple {
public static void main(String args[]) {
int sum=0;
for(int i=1; i<1000; i++) {
if(i%3==0 || i%5==0) {
sum = sum + i;
}
}
System.out.println(sum);
}
}
파이썬으로 작성한 코드입니다
total = 0
for i in range(1,1000):
if i % 3 == 0 or i % 5 ==0:
print(i)
total += i
print(total)
public static void main(String[] args) {
int totalNum = 0;
for(int i = 1; i < 1000; i++) {
if(i%3 == 0 ) {totalNum += i;}
else if(i%5 == 0) {totalNum += i;}
}
System.out.println("1000미만 자연수에서 3,5의 배수의 총 합은 = " + totalNum + "이다.");
}
int main(void) { int i;
printf("3과 5의 배수 \n");
for(i=1;i<1000;i++)
{
if(i%3==0 || i%5==0)
{
printf("%d \n",i);
}
}
}
# 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.
# reference : http://projecteuler.net/problem=1
mul3_5 = [] # 3의 배수와 5의 배수를 포함한 리스트
for i in range(1,1001):
if i % 3 == 0 or i % 5 == 0:
mul3_5.append(i) # 1부터 1000 사이의 숫자 중 3이나 5로 나누어 떨어지는 수를 mul3_5에 추가.
sum(mul3_5)
# answer : 234168
result = []
num = list(range(1000))
for number in num:
if number % 3 == 0 or number % 5 == 0
result.append(number)
else:
pass
print(sum(result))
public class meh {
int result;
public int findThreeAndFive(int x) {
for (int i = 0; i<x; i++) {
if (i%3==0 || i%5== 0)
result += i;
}
return result;
}
import static org.junit.Assert.*; import org.junit.Test;
public class tester {
@Test
public void multiTest() {
//assertEquals(23, getMultiple(3, 10)+getMultiple(5, 10));
//should be 233168
int result = getMultiple(3, 1000)+getMultiple(5, 1000)-getMultiple(15,1000);
assertEquals(233168, result);
}
public static int getMultiple(int num, int end) {
int result = 0;
for(int i = num; i < end; i+=num)
result += i;
return result;
}
}
#include <stdio.h>
#define SIZE 100
int main(void)
{
int i, sum = 0;
for (i = 1; i < SIZE; i++) {
if ((i % 3 == 0) || (i % 5 == 0)) {
sum += i;
}
}
printf("%d\n", sum);
return 0;
}
sum(set(filter(lambda x : x % 3 = 0 , range (1, 1000))) | set(filter(lambda x : 5 % 3 = 0 , range (1, 1000))))
public class Quiz_01 {
public static void main(String[] args) {
int sum = 0;
for (int i = 3; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0) {
sum += i;
}
} // end for
System.out.println(sum);
} // end main
} // end class
결과 : 233168
set3 = {3*x for x in range(1,333)}
set5 = {5*x for x in range(1,201)}
set_35 = set3 | set5
print(sum(set_35))
public class MultiplesOf3n5 {
public static void main(String[] args) {
int sum = 0;
for(int num = 1; num < 1000; num++) {
if(num % 3 == 0 || num % 5 == 0)
sum += num;
}
System.out.println("The sum of multiples of 3 and 5 between 1 and 1000 is " + sum + ".");
}
}
import java.util.stream.IntStream;
public class MultiplesOf3n5 {
public static void main(String[] args) {
System.out.printf("Answer: %d", IntStream.range(1, 1000).filter(j -> j % 3 == 0 || j % 5 == 0).sum());
}
}
import numpy as np
def sum(num):
return num*(num+1)/2
def checkNum(num):
if num%1==0:
return num-1
else:
return np.trunc(num)
def prob(lim, n1,n2):
n3 = n1*n2
num_n1 = checkNum(lim/n1)
num_n2 = checkNum(lim/n2)
num_n3 = checkNum(lim/n3)
sum_n=0
sum_n = n1*sum(num_n1) + n2*sum(num_n2) - n3*sum(num_n3)
return sum_n
maxnumber = int(input("Enter Max number: "))-1 #1000
tfloor = maxnumber//3 pfloor = maxnumber//5 tpfloor = maxnumber//15
t = 0 for x in range(1, tfloor+1): a = 3 * x t = t+a
p = 0 for x in range(1, pfloor+1): b = 5 * x p = p + b
tp = 0 for x in range(1, tpfloor+1): c = 15 * x tp = tp + c
print(t+p-tp)
public class Quiz1 {
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);
}
}
result=0
for i in range(1,1000,1):
if i%3==0:
result=result+i
elif i%5==0:
if i%15==0:
pass
else:
result=result+i
print(result)
n=1000
list=[]
for i in range(1,n):
if i%3==0:
list.append(i)
elif i%5==0:
list.append(i)
answer=sum(list)
print(answer)
파이썬으로 코딩 처음배우는 학생입니다. 제일 쉬운 난이도부터 차근차근 풀어볼까 합니다.
result = 0 for i in range(1,1000): if i % 3 == 0 or 5 == 0: result += i print(result)
일단 풀어보고 다른분들 풀이로 차차 개선해나가고자 합니다. 미리 감사인사 드립니다.
public class Basu {
public static void main(String[] args) {
int sum = 0;
for(int i = 0; i < 1000; i++) {
if(i % 3 == 0 || i % 5 == 0) { //1000미만의 자연수중 3과 5의 배수에 해당하는것이 있다면 변수 sum에 더해진다.
sum = sum + i;
}
}
System.out.println(sum);
}
}
numlst = []
for i in range(1,1000):
if i % 3 == 0:
numlst.append(i)
elif i % 5 == 0:
numlst.append(i)
print(sum(numlst))
result = 0
for sum in range(1,1000):
if sum % 3 == 0 or sum % 5 == 0:
result += sum
print(result)
점프 투 파이썬에서 배운 내용이 그대로 나와 적용해보았습니다.
#include<iostream>
int main()
{
int i=0, sum=0;
for(i; i<1000; i++){
if(i%3==0 || i%5==0)
sum+=i;
}
std::cout<<"sum : "<<sum<<std::endl;
return 0;
}
class Practice
{
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("3과5의배수의 합은"+sum);
}
}
a = []
b = []
for num in range(0,1000):
if num % 3 == 0:
a.append(num)
elif num % 5 == 0:
b.append(num)
else: pass
print(a+b)
int main(void) { int i=0; int num=0; int sum=0; for(i=1;i<1000;i++) { if(i%3==0||i%5==0) { sum = sum +i; } }
printf("%d",sum);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
int sum = 0;
int i;
for (i=1;i<1001;i++) {
if (i%3 == 0 || i%5 == 0)
{
sum = sum + i;
}
}
printf("%d", sum);
system("pause");
return 0;
}
package main;
public class Main {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0) {
System.out.println(i);
}
}
System.out.println(sum);
}
}
# 10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다.
# 1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
su = 0
for i in range(1,1000):
if i % 3 ==0 or i % 5 ==0:
su = su+i
print ("%d %d" %(i, su))
#include <stdio.h>
//10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다.
//1000미만의 자연수에서 3, 5의 배수의 총합을 구하라.
int main()
{
int sum = 0;
for (int i = 1; i < 1000; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
sum += i;
}
}
printf("합계 : %d \n", sum);
return 0;
}
x = 3
y = 5
z = 15
i = 1
sum_m_x = 0
sum_m_y = 0
sum_m_z = 0
while True:
if x*i >= 1000:
break
else:
sum_m_x += x*i
i += 1
i = 1
while True:
if y*i >= 1000:
break
else:
sum_m_y += y*i
i += 1
i = 1
while True:
if z*i >= 1000:
break
else:
sum_m_z += z*i
i += 1
result = sum_m_x + sum_m_y - sum_m_z
print(result)
end = int(input("몇까지의 배수들?;")) list = [0]*1000 i=0 while end>0: list[i]=end i =i+1 end =end-1 result= 0 for a in range(1,len(list)): if a%3==0 or a%5==0: result+=a
print(result)
public class MultiplesOf3And5 {
public static void main(String[] args) {
int sum = 0; // 합계 저장
for (int i = 1; i < 1000; i++) { // 1 ~ 999까지 출력
if ( i % 3 == 0 || i % 5 == 0){ // 3의 배수 또는 5의 배수 찾기
sum +=i; // 3의 배수 또는 5의 배수인 경우 더하기
}
}
System.out.println(sum); // 합계 출력
}
}
C#
class Program
{
static void Main(string[] args)
{
int sum = 0;
for (int i=0; i<1000; i++)
{
if (i % 3 == 0 || i % 5 == 0)
sum += i;
}
Console.Write(sum);
}
}
multi = []
for i in range(1,1000):
if i % 3 == 0:
multi.append(i)
if i % 5 == 0:
multi.append(i)
print(sum(set(multi)))
3과 5의 공통배수(15, 30, .. 등등)의 중복값을 set() 함수로 중복제거후 sum() 처리
int sum3 = 0, sum5=0;
for(int i=1; i<1000; i++) {
if(i%3==0) {
sum3 += i;
continue;
}
if(i%5==0) {
sum5 += i;
}
}
//233168
void main() {
int sum = 0;
for (int i = 0; i < 1000; i++)
{
if (i % 3 == 0 || i % 5 == 0)
sum += i;
}
printf("sum is %d", sum);
}
#include <iostream>
using namespace std;
constexpr auto NUM = 1000;
class Solution
{
public:
Solution(const int& param1, const int& param2)
:a(param1), b(param2), sum(0) {}
virtual int Multiple()
{
for (int i = 0; i < NUM; i++)
{
if (i%a == 0 || i % b == 0)
sum += i;
}
return sum;
}
private:
int sum;
const int& a, b;
};
int main()
{
Solution sol(3, 5);
cout << sol.Multiple() << endl;
}
static void Main(string[] args)
{
int Sum = 0;
for (int i = 1; i < 1000; i++)
{
if(i%3 == 0 || i%5 == 0)
{
Sum += i;
}
}
Console.WriteLine(Sum);
}
Python
Three = [] Five = []
for i in range(1,1000): if i%3 == 0 : Three.append(i)
elif i%5 == 0 :
Five.append(i)
ThreeS = set(Three) FiveS = set(Five)
k = ThreeS | FiveS
sum = 0 for i in k: sum = sum + i Answer = sum
Answer
list로 받아서 집합으로 바꾸어서 합집합하고 그 결과를 다 더했습니다.
n = int(input())
result = 0
for i in range(n):
if i%3 == 0 or i%5 == 0:
result = result + i
print(result)
sum=0
for i in range(1,1000):
if i % 3 == 0 or i%5==0:
sum+=i
print(sum)
package a.b.c;
public class coding {
public static void main(String[] args) {
//3의 배수
int sum3 = 0;
//5의 배수
int sum5 = 0;
//15의 배수
int sum15 =0;
for(int i=1; i<1000; i++) {
if(i%3 == 0) {
sum3 += i;
}
if(i%5 ==0) {
sum5 += i;
}
if(i%15 ==0) {
sum15 += i;
}
}
//정답
int result = sum3+sum5-sum15;
System.out.println(result);
}
}
data_three = []
data_five = []
data_three_five = [num for num in range(1,1000) if num % 3 == 0 or num % 5 == 0]
sum(data_three_five)
list1 = list(range(1000))
list1.remove(0)
multiple = []
for i in range(len(list1)):
if list1[i] % 3 == 0 or list1[i] % 5 == 0:
multiple.append(list1[i])
result = sum(multiple)
print(result)
자바
int i = 0, j = 0;
int result = 0;
for(; i < 1000; i++) {
if(i % 3 == 0) {
result += i;
} else if(i % 5 == 0) {
result += i;
}
}
System.out.println(result);
#include <stdio.h>
int main(void)
{
int i = 0;
int sum = 0;
for (i = 1; i < 10; i++)
{
if (i % 3 != 0 && i % 5 != 0)
continue;
sum += i;
}
printf("결과: %d \n", sum);
return 0;
}
#include <stdio.h>
int main(void)
{
int i, t=0, f=0, c=0;
for (i = 1; i <=1000; i++)
{
if (i % 3 == 0)
{
t = t + i;
}
else if (i % 5 == 0)
{
f = f + i;
}
else if (i % 15 == 0)
{
c = c + i;
}
}
printf("1000미만의 3, 5배수의 총합은 %d 입니다.", t + f - c);
return 0;
}
PHP
$max = 1000;
$result = array_sum(array_unique(array_merge(range(0, $max - 1, 3), range(0, $max - 1, 5))));
print_r($result); // 233168
def threefivesum():
sum = 0
for i in range(1000):
if i % 3 ==0 or i %5 == 0:
sum += i
return sum
print(threefivesum())
#multiples of 3 and 5
i = 1
num = 0
while i < 1000:
if i % 3 == 0:
num = num + i
elif i % 5 == 0:
num = num + i
elif i % 15 == 0:
num = num - i
i = i +1
print(num)
# 3의 배수, 5의 배수를 담을 리스트 선언
multiple_three = []
multiple_five = []
# 자연수 최대값
# 문제에선 1000미만이므로, 999까지 들어가기때문에 999 입력
max_int = 999
# 배수를 구하는 반복문 실행
for i in range(1, max_int):
j = 1
k = 1
temp = 0
while True:
temp = i * (3 * j)
if temp <= max_int:
multiple_three.append(temp)
else:
break
j += 1
while True:
temp = i * (5 * k)
if temp <= max_int:
multiple_five.append(temp)
else:
break
k += 1
# 리스트 내 중복값 제거
multiple_three_remove = list(set(multiple_three))
multiple_five_remove = list(set(multiple_five))
# 리스트 값 합산, 출력
print(sum(multiple_three_remove) + sum(multiple_five_remove))
처음으로 푼 문제인데 쓰고보니 더럽게 길고 효율 낮네요 ㅜㅜ
public class ex01 {
public static void main(String[] args) {
int sum = 0;
for (int i = 0; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0) {
sum = sum + i;
}
}
System.out.println(sum);
}
}
L1=list(range(3,1000,3))
S1=set(L1)
L2=list(range(5,1000,5))
S2=set(L2)
A=S1.union(S2)
print(sum(A))
sum=0
for i in range(100):
if i%3==0 or i%5==0:
sum+=i
else:
continue
print("100미만 3과 5의 배수의 합은",sum,"입니다.")
//1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
using namespace std; int main(void) { int num, i; int sum = 0;
for(i=1;i<1000;i++) { if(i%3==0 || i%5==0) sum += i; }
cout << "1000미만의 자연수에서 3,5의 배수의 총합 : "<< sum << endl;
return 0; }```{.cpp}
```
y = 0
for x in range(1000):
if x%3 == 0 or x%5 == 0:
y = y + x
if x == 999:
print(y)
단순 조건문으로 해결 가능하네요 233168이 정답!
Find the sum of all the multiples of 3 or 5 below 1000.
result = 0
for i in range(1, 1000):
if i % 3 == 0 or i % 5 == 0:
result += i
print(result)
public class 배수의합 {
public int mutilplesOfThreeAndFive() {
int answer = 0;
for(int i = 1; i < 1000; i++) {
if(i % 3 == 0 || i % 5 == 0) {
answer += i;
}
}
return answer;
}
public static void main(String[] args) {
배수의합 배수 = new 배수의합();
System.out.println(배수.mutilplesOfThreeAndFive());
}
}
//Project_Eular 프로그램
#include<stdio.h>
int main(void)
{
//변수 선언
int result = 0;
//3의 배수 구하기
for (int i = 1; i < 1000; i++)
{
if (i % 3 == 0)
{
result += i;
}
}
//5의 배수 구하기
for (int i = 1; i < 1000; i++)
{
if (i % 5 == 0)
{
result += i;
}
}
//15의 배수 구해서 빼기
for (int i = 1; i < 1000; i++)
{
if (i % 15 == 0)
{
result -= i;
}
}
printf("1000미만의 3,5배수 합은 %d 입니다.", result);
return 0;
}
C로 짠 코드입니다. [원리] 3의배수 + 5의배수 - 15의 배수 = 결과값
# project euler
result = []
for k in range(1, 1000) :
if k % 3 == 0 :
result.append(k)
continue
if k % 5 == 0 :
result.append(k)
print(sum(result))
결과
233168
public class test {
public static void main(String[] args) {
int i;
int result = 0;
for (i = 1; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0) {
result += i;
}
}
System.out.print(result);
}
}
result = 0
for i in range(1000) :
if i % 3 == 0 or i % 5 == 0 :
result = result + i
print(result)
파이썬 풀이 입니다.
result = 0
for i in range(1,1000):
if i%3 == 0:
result +=i
elif i%5 == 0 and i%3 !=0:
result +=i
print(result)
int main(void) { int a, b, c; int suma = 0, sumb = 0, sumc = 0; for (a = 1; a < 100; a++) { if (a % 3 == 0) suma += a; } for (b = 1; b < 100; b++) { if (b % 5 == 0) sumb += b; } for (c = 1; c < 100; c++) { if (c % 15 == 0) sumc += c; } printf("100미만 자연수중 3,5배수 총합은%d입니다.", suma + sumb - sumc); return 0; }
int main(void) { int a, b, c; int suma = 0, sumb = 0, sumc = 0; for (a = 1; a < 100; a++) { if (a % 3 == 0) suma += a; } for (b = 1; b < 100; b++) { if (b % 5 == 0) sumb += b; } for (c = 1; c < 100; c++) { if (c % 15 == 0) sumc += c; } printf("100미만 자연수중 3,5배수 총합은%d입니다.", suma + sumb - sumc); return 0; }
public class CodeTest01 {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i < 1000; i++) {
if (i % 3 == 0) {
sum += i;
} else if (i % 5 == 0) {
sum += i;
}
}
System.out.println("총 합 : " + sum);
}
}
result = []
for i in range(1,1000):
if i % 3 == 0:
result.append(i)
for j in range(1,1000):
if j % 5 == 0:
result.append(j)
temp = set(result) #필요 없음
total = sum(temp)
print(total)
def find_multi(n,k): a=[] for i in range(1,len(n)): if i%k ==0: a.append(i)
return a
n=[i for i in range(1,1000)]
multi_3 = find_multi(n ,3) multi_5 = find_multi(n, 5) multi_15 = find_multi(n, 15)
a=sum(multi_3)+sum(multi_5)-sum(multi_15)```{.python}
```
public class MultiplesQuiz { 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); } }
이런 기본문제 마저 고급기능을 활용하여 푼 다른 대단한 분들 많으시네요 ㅠㅠ
#include <iostream>
using namespace std;
int main()
{
int sum=0;
for (int i = 1; i < 1000; i++)
{
if (i % 3 == 0)
{
sum += i;
}
if (i % 5 == 0)
{
sum += i;
}
if (i % 3 == 0 && i % 5 == 0)
{
sum -= i;
}
}
cout << sum;
}
result = []
for i in range(1, 1000):
if i % 3 == 0 or i % 5 == 0 :
result.append(i)
print(sum(result))
#include <iostream>
using namespace std;
int main() {
int sumnumber=0;
for(int i=0;i<1000;i++) if(i %3 ==0 || i % 5 ==0) sumnumber+=i;
cout << sumnumber;
return 0;
}
public class Multiples_of_3_and_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 = sum + i;
}
}
System.out.println(sum);
}
}
res = 0
num = 0
while True:
num += 1
if num == 1000:
break
if num % 3 == 0:
res += num
elif num % 5 == 0:
res += num
print(res)
def solution(k): array = [] sum = 0 for i in range(k): if i%3 == 0 or i%5 == 0: array.append(i) for i in array: sum += i return sum```{.python}
```
count = 1000
mul_list = []
for n in range(1,count):
if n < count and n % 3 == 0 or n % 5 == 0:
mul_list.append(n)
print('{} 미만의 자연수에서 3과 5의 배수의 총 합은 {} 입니다.'.format(count, sum(mul_list)))
기초강의 듣고 처음해보는 코딩..!
#include <iostream>
int main(void) {
int sum = 0;
for (int i = 3; i < 1000; i += 3)
sum += i;
for (int i = 5; i < 1000; i += 5)
if (i % 3)
sum += i;
printf("%d", sum);
return 0;
}
#include <stdio.h>
void main()
{
int i;
int sum = 0;
for (i = 1; i < 1000; i++)
{
if ((i % 3 == 0) || (i % 5 == 0))
{
sum += i;
}
}
printf("%d\n", sum);
}
public int mutilplesOfThreeAndFive() {
int answer = 0;
for(int i = 1; i < 1000; i++) {
if(i % 3 == 0 || i % 5 == 0) {
answer += i;
}
}
return answer;
}
#include <stdio.h>
int main(void)
{
int sum;
sum = 0;
for (int i = 0; i < 1000; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
sum += i;
}
}
printf("%d", sum);
return 0;
}
def sum_of_natural_num():
three_sum = 0
five_sum = 0
for i in range(0, 1000):
if i % 3 == 0:
three_sum += i
if i % 5 == 0:
five_sum += i
return sum
if __name__ == "__main__":
print(sum_of_natural_num())
def solution(n) :
n -= 1
n1 = n//3
n2 = n//5
n3 = n//15
return int(3*n1*(n1+1)/2 + 5*n2*(n2+1)/2 - 15*n3*(n3+1)/2)
public class 배수총합문제 {
public static void main(String[] args) {
int j=0;
for(int i=1; i<100; i++) {
if(i%3==0) {
j+=i;
}
else if(i%5==0) {
if(i%3==0&&i%5==0) {
j-=i;
}
j+=i;
}
}
System.out.println(j);
}
}
public class 배수총합문제 {
public static void main(String[] args) {
int j=0;
for(int i=1; i<1000; i++) {
if(i%3==0) {
j+=i;
}
else if(i%5==0) {
if(i%3==0&&i%5==0) {
j-=i;
}
j+=i;
}
}
System.out.println(j);
}
}``` public class 배수총합문제 {
public static void main(String[] args) {
int j=0;
for(int i=1; i<1000; i++) {
if(i%3==0) {
j+=i;
}
else if(i%5==0) {
if(i%3==0&&i%5==0) {
j-=i;
}
j+=i;
}
}
System.out.println(j);
}
} ```
int result = 0;
for(int i = 1;i <= 1000; i++)
{
if (i % 3 == 0 || i % 5 == 0)
result += i;
}
return result;
from functools import reduce
three_and_five=list(filter(lambda x: x%3==0 or x%5==0,range(1000)))
ssum=reduce(lambda x,y:x+y,three_and_five)
int main(void)
{
int sum=0;
for(int i=0; i<1000; i++)
{
if(i%3==0)
sum+=i;
else if(i%5==0)
sum+=i;
}
printf("%d\n", sum);
return 0;
}
a=[]
for x in range(1,1001):
if x % 3 == 0:
a.append(x)
elif x %5 ==0:
a.append(x)
add=0
for y in a:
add = add+y
print(add)
public class ArrayPassing{
int sum=0;
public int calcu(){
for(int i=0;i<100;i++) {
if(i%3==0)
sum+=i;
else if(i%5==0)
sum+=i;
else if(i%15==0)
sum-=i;
else
continue;
}
return sum;
}
public static void main(String[] args) {
ArrayPassing a = new ArrayPassing();
a.calcu();
}
}
public class Mutiple {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i < 1000; i++) {
if(i % 3 == 0 || i % 5 == 0) {
sum += i;
}
}
System.out.println("1이상 1000미만의 3과 5 배수 총합 >> " + "\n" + sum);
}
}
정답 : 233168
public class Sat1109 {
public static void main(String[] args) {
int total=0;
for(int i = 0 ;i<1000;i++){
if(i%3 == 0 || i%5 ==0)
total += i;
}
System.out.println("총 합 : "+total);
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Multiples_of_3_and_5
{
class Program
{
static void Main(string[] args)
{
int input_number = 1000;
int count_num = 0;
for (int i = 0; i < input_number; i++)
{
if (i % 3 == 0 || i % 5 == 0) count_num += i;
}
Console.WriteLine("Count Num : " + count_num);
}
}
}
#include <stdio.h>
int main()
{
int sum = 0;
for (int i = 1; i < 1000; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
sum += i;
}
}
printf("%d\n", sum);
return 0;
}
Python
res = []
for i in range(1, 1000):
if i % 3 == 0:
res.append(i)
elif i % 5 == 0:
res.append(i)
print sum(res)
public class Test5 {
public static void main(String[] args) {
//문제
// 10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다.
// 1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
int sum = 0;
for (int i = 1; i < 1000; i++) {
if ( i % 3 == 0 || i % 5 == 0 ){
sum += i;
}
}
System.out.println(sum);
}
}
N = 1000
sum = 0
for x in range(N) :
if x % 3 == 0 or x % 5 == 0 :
sum += x
print(sum)
python 3.7.2 교육용 -코딩프렌즈-
result = 0
for i in range(1, 1000):
if i % 3 == 0 or i % 5 == 0:
result += i
print(result)
답 : 233160
total = 0
for i in range(1,1000):
if i%3==0 or i%5==0: total += i
print(total)
허접하지만 한번 짜 봤습니다. 정답은 233168
package Beginner;
public class cd350 {
public static void main(String[] args) {
int result = 0;
for ( int i = 1 ; i < 1000 ; i++ ) {
if (i % 3 == 0 || i % 5 == 0) {
result += i;
}
}
System.out.println(result);
}
}
def abc():
a = int(input("1000 이하의 양의 정수를 입력하세요 : "))
if a < 1:
print("자연수를 입력해주세요")
return abc()
elif a > 1000 :
print("1000 이하의 자연수를 입력해주세요")
return abc()
else :
global b
b = 0
for i in range(a):
if i % 3 == 0 or i % 5 == 0 :
b += i
print(b)
c = abc()
#include <stdio.h>
void main(){
int sum=0;
int i;
for(i=1;i<1000;i++){
if(i%3==0||i%5==0&&i%15!=0){
sum += i;
}
}
printf("%d",sum);
}
답 : 233168
import java.util.Scanner;
public class s_350 {
public static void main(String[] args) {
int num = 0;
int b = 1000;
for (int a = 0; a < b; a++) {
if (a % 3 == 0 || a % 5 == 0)
num = num + a;
}
System.out.printf("1000미만의 자연수에서 3,5의 배수의 총합은?>>%d", num);
}
}
list1 = []
for i in range(1 , 10): if (i % 3 == 0) or (i % 5 == 0): list1.append(i) print(sum(list1))
sum = 0 # 3의 배수와 5의 배수를 합할 공간 할당
for i in range(1, 1000) : # 1부터 1000 미만까지 조건에 해당하는지 확인
if(i % 3 == 0 or i % 5 == 0) :
sum += i
print(sum) # sum 출력
void main() { int sum = 0; for (int i = 1000; i > 0; i--) { if (i % 3 == 0 || i % 5 == 0) sum += i; } printf("sum is %d", sum); }
X = []
for x in range(1000):
if x % 3 == 0 or x % 5 == 0:
X.append(x)
result = 0
for i in X:
result += i
print(result)
파이썬 while문으로 숫자 1부터 1000을 loop로 돌리고, 해당 숫자를 3이나 5로 나눴을때 %가 0이 되면 sum 값에 포함시켜서 최종으로 sum값을 출력하도록 했습니다.
loop = 0
sum = 0
while loop < 1000:
if loop % 3 == 0 or loop % 5 ==0:
sum += loop
loop += 1
print(sum)
이걸 어떻게 줄여서 작성하시는 거지... 뉴비 우러욧... 숫자가 3, 5로 나눠떨어지면 sum에 더했습니다.
sum = 0
for i in range(1,1000):
if i % 3 ==0 or i % 5 == 0:
sum += i
print(sum)
using namespace std;
int main() { int num = 0; int result = 0;
for (num = 0; num< NUM; num++)
{
if (num % 3 == 0 || num % 5 == 0)
result += num;
}
cout << result << endl;
}
i가 3의 배수이면 i % 3 은 0 이 되어 False가 되므로, Not i % 3 으로 True로 변경
i가 5의 배수이면 i % 5 은 0 이 되어 False가 되므로, Not i % 5 으로 True로 변경
Not i %3 or Not i % 5 이므로, Not으로 묶어 Not (i%3 and i%5)로 표기
result=0
for i in range(1,1000):
if not (i % 3 and i % 5):
result += i
print (result)
자바입니다
int sum = 0;
for (int i = 1; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0) {
sum += i;
}
}
System.out.println("0~1000까지 3의배수와 5의배수의 합 : " + sum);
#include <iostream>
int main() {
int sum = 0;
for (int i = 1; i < 1000; i++)
{
if ((i % 3 == 0) || (i % 5 == 0)) sum = sum + i;
}
std::cout << sum << std::endl;
}
a=1000//3
b=1000//5
c=1000//15
d=0
e=0
f=0
for i in range(a):
d+=3*(i+1)
for j in range(b):
e+=5*(j+1)
for k in range(c):
f+=15*(k+1)
print(d+e-f)
포함배재원리입니다.
int Result()
{
int result = 0;
int Sum_MO_three = 0;
int Sum_MO_five = 0;
int Sum_MO_fifteen = 0;
for(int i =0; i>=1000;i++)
{
i%3==0?Sum_MO_three+=i:0;
i%5==0?Sum_MO_five+=i:0;
i%(3*5)==0?Sum_MO_fifteen+=i:0;
}
result = Sum_MO_three + Sum_MO_five - Sum_MO_fifteen;
return result;
}
answser = 0
for i in range(1, 1000):
if i % 3 == 0 or i % 5 == 0:
answer += i
print(answer)
1부터 999까지 3이나 5로 나누어떨어지는 수가 있으면 answer에 더하면 구할 수 있습니다.
package main
import "fmt"
func main() {
var b int
var i int
for i = 1; i < 1000; i++{
if (i%3==0 || i%5==0){
b = b + i}
}
fmt.Println(b)
}
s=set()
# 3과 5의 배수 구하기
for i in range(1,1000):
if i % 3==0 or i % 5==0:
s.add(i)
print(sum(s)) #233168
multi = []
i = 0
while i<1000:
if i % 3 == 0 or i % 5 == 0:
multi.append(i)
i += 1
print(sum(multi))
#71번 문제
#먼저 우리의 결과값을 0 으로 initialize 해줍니다.
res = 0
#1~1000 미만의 자연수를 for loop으로 iterate해줍니다.
for i in range(1,1000):
#만약 현재의 자연수가 3 또는 5로 나누어 떨어진다면 = 3 또는 5의 배수이므로 결과값에 더해줍니다.
if i % 3 == 0 or i % 5 == 0:
res += i
#결과값을 확인해봅니다.
print(res)
```{.java} public class Exam01 {
public static void main(String[] args) {
int sum = 0;
for (int i=0; i<1000; i++) {
if (i%3==0) {
sum += i;
}
else if (i%5==0) {
sum += i;
}
}
System.out.println("1000미만의 수 중 3,5 배수의 총합 :" + sum);
}
}
Console [1000미만의 수 중 3,5 배수의 총합 :233168]
public static void main(String[] args) {
int sum=0;
for(int i=0; i<1000; i++ ) {
if(i%3==0 || i%5==0) {
sum=sum+i;
}
}
System.out.println(sum);
}
below = int(input())
sum = 0
for i in range(1,below):
if i % 3 == 0 or i % 5 == 0:
sum += i
print(sum)
print(sum([x for x in range(1000) if x % 3==0 or x % 5 ==0]))
//자바스크립트를 쓰다가 오랜만에 파이썬을 쓰려고 하니 리스트가 생각이 안납니다;
#include<stdio.h>
int main(){
int i, sum=0;
for(i=1;i<1000;i++){
if(i%3==0||i%5==0) sum+=i;
}
printf("%d",sum);
}
package codingdozang;
public class MultiplesOf3And5 {
public static void main(String[] args) {
int i, sum=0;
for(i=1;i<1000;i++) {
if(i%3==0||i%5==0) sum+=i;
}
System.out.println(sum);
}
}
result = []
for num in range(1,1000):
if num % 3 == 0 or num % 5 == 0:
result.append(num)
result2 = sum(result)
print(result2)
c언어로 구현했습니다
#include <stdio.h>
int main()
{
int i, sum = 0;
for (i = 1; i < 1000; i++)
if (i % 3 == 0 || i % 5 == 0)
sum = sum + i;
printf("sum= %d", sum);
}
num = 1000
x3 = []
x5 = []
for i in range(1, num):
if(i % 3 == 0):
x3.append(i)
if(i % 5 == 0):
x5.append(i)
set35 = set(x3+x5)
print(set35)
#include <stdio.h>
int main(){
int b =0;
for(int a =0;a<1000;a++){
if(a%3 == 0 || a%5 == 0){
b += a;
}
}
printf("%d\n",b);
return 0;
}
def sum_mp(n): global s s=0 x=1 while x<n: if x%3==0: s=s+x x=x+1 else: x=x+1 print(n, "미만의 자연수에서 3의 배수의 합은", s, "이다.")
def sum_mp5(n): global k k=0 x=1 while x<n: if x%5==0: k=k+x x=x+1 else: x=x+1 print(n, "미만의 자연수에서 5의 배수의 합은", k, "이다.")
def sum_mp5_3(n): sum_mp(n) sum_mp5(n) sum=s+k print(sum) print("따라서,", n, "미만의 자연수에서 3과 5의 배수의 합은", sum, "이다.")
sum_mp5_3(1000)
'''10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다.
1000미만의 자연수에서 3,5의 배수의 총합을 구하라.'''
i=0
result=0
for i in range(1,1000):
if i%3==0 or i%5==0:
count=0
while count<=i:
count+=1
result+=count
print(result)
int sum=0;
for(int i=1; i<1000; i++)
sum+=(i%3==0 || i%5==0)?i:0;
printf("%d \n", sum);
return 0;
c언어 입니다
Nset, N = set(), 0
for i in range(1000):
if i % 3 == 0 or i % 5 == 0:Nset.add(i)
for i in Nset:N += i
print(N)
#include <stdio.h>
int main(void)
{
int sum =0;
int i;
for(i=0;i<1000;i+)
{
if (( i % 3 == 0) || ( i % 5 == 0))
sum+=i;
}
printf("%d \n",sum);
return 0;
}
c언어로 작성하였습니다.
자바스크립트로 작성
var mul = [];
for(var i = 1; i < 1000; i++){
var three = 3 * i;
var five = 5 * i;
if(three <1000) mul.push(three)
if(five < 1000) mul.push(five)
}
var sum = mul.reduce((a, b) => a + b, 0);
sum;
public class Main {
public static void main(String[] args) {
int sum = 0;
int target = 3;
while(target<10001) {
if (target % 3 == 0 || target % 5 == 0) {
sum += target;
}
target++;
}
System.out.println(sum);
}
}
x=list()
for i in range(1,1000):
if(i%3==0 or i%5==0):
x.append(i)
result=0
for i in x:
result+=i
print(result)
```{.cs}
int main(void) { int i; int sum = 0;
for(i=0;i<LIMIT;i++)
{
if(i % 3 == 0 || i % 5 == 0)
sum += i;
}
printf("%d\n", sum);
return 0;
}
DEV C++ 이용하였습니다.
int result = 0;
for(int i = 0; i < 1000; i++)
{
if(i % 3 == 0 || i % 5 == 0)
{
result += i;
}
}
System.out.printf("결과 : %d입니다.", result); // 답은 233168 입니다.
number = eval(input("1000미만의 자연수에서 3,5의 배수의 총합을 구하라. ")) sum = 0 for i in range(number) : if (i % 3 == 0 ) or (i % 5 == 0) : sum = sum + i print(sum)
Python 공부 중인데 간단하게 만들어 봤습니다. 풀이 보니까 다양한 언어로 다양한 방법으로 해결이 가능하네요;;ㅎㅎ 저한테는 넘사벽이군요;ㅠㅠ
sum = 0
for i in range(1,1000):
if (i%3 == 0) or (i%5 == 0):
sum += i
print(sum)
sum = 0
a= 3
b= 5
c= 15
while(a < 1000):
sum += a
a += 3
while(b < 1000):
sum += b
b += 5
while(c < 1000):
sum = sum-c
c += 15
print(sum)
int main(void) {
int i;
int temp = 0;
for (i = 0; i < 1000; i++) {
if (i % 3 == 0) temp += i;
if (i % 5 == 0) temp += i;
}
printf("%d", temp);
return 0;
}
i = 3
n = 5
a = []
while i < 1000:
a.append(i)
i = i + 3
while n < 1000:
a.append(n)
n = n + 5
b = set(a)
print(sum(b))
package study;
public class b {
public static void main(String[] args) {
int sum = 0;
for(int i = 0 ; i < 1000 ; i++) {
if( i%3 == 0 || i%5 == 0 ) {
sum = sum + i;}
}
System.out.println(sum);
}
}
result = []
for i in range(1, 1000): if i % 3 == 0 or i % 5 == 0: result.append(i)
print(result)
sum = 0 for i in result: sum += i
print(sum)```{.python}
```
three_of_multi = []
five_of_multi = []
for i in range(1, 1000):
if i % 3 == 0:
three_of_multi.append(i)
elif i % 5 == 0:
five_of_multi.append(i)
else:
pass
answer = sum(three_of_multi + five_of_multi)
print(answer)
파이썬 3.8.1 입니다.
#-*- coding:utf-8 -*-
li1 = list(filter(lambda n: n%3 == 0 or n%5 == 0,range(1,1000))) # 3또는5의 배수 모음
print(sum(li1)) #배수 모음의 합
nums = []
for x in range(1, 1000):
if x % 3 == 0 or x % 5 == 0:
nums.append(x)
sum(nums)
파이썬으로 작성했습니다 답:233168
```{.python} a = int(input("숫자입력")) i = 1 _sum = 0 while i < a: if i % 3 == 0 or i % 5 == 0: _sum += i i += 1
print(_sum)
C# class Program { static void Main(string[] args) { int sum = 0; for (int i=1; i<1000; i++) { if (i % 3==0 || i% 5 == 0) sum += i; } Console.Write(sum); } } }
#include <stdio.h>
int main(void) {
int i;
int sum = 0;
for( i = 3; i < 1000; i += 3)
{
sum += i;
}
for( i = 5; i < 1000; i += 5)
{
if( i%3 != 0)
{
sum += i;
}
}
printf("%d\n", sum);
return 0;
}
count = 0 for i in range(1,1000): if i % 3 == 0: count += i if i % 5 == 0: count += i if i % 15 == 0: count -= i print(count)
(3의배수+5의배수) - 3과 5의 공배수(=15의 배수)
int main() { int n; int sum = 0; scanf("%d", &n); for (int i = 3; i < n; i++) { if (i % 3 == 0 || i % 5 == 0) sum += i; }
printf("%d", sum);
}
# -*- coding: utf-8 -*-
def sol(x, y, limit):
s = 0
if limit % x == 0:
xc = (limit - 1) // x
else:
xc = limit // x
for i in range(0, xc):
s += x + (x * i)
if limit % y == 0:
yc = (limit - 1) // y
else:
yc = limit // y
for i in range(0, yc):
s += y + (y * i)
print(s)
if __name__ == '__main__':
sol(3, 5, 1000)
package de;
public class HelloWorld {
public static void main(String[] args) {
System.out.println(hap(1000));
}
public static int hap(int a) {
int hp = 0;
for (int i = 0; i < a; i++) {
if (i % 3 == 0 || i % 5 == 0) {
hp = hp + i;
}
}
return hp;
}
}
n = 0
sum = 0
for i in range(1,1000,1) :
n += 1
if (n%3 == 0) or (n%5 == 0) :
sum = sum + i
else :
continue
print(sum)
a = 0
for i in range(1, 1000):
if i % 3 == 0 or i % 5 == 0 and i % 15 != 0:
a += i
print(a)
# 233168
def multiple(num):
result = 0
for i in range(1, num):
if i % 3 == 0:
result += i
elif i % 5 == 0:
result += i
return result
print(multiple(1000))
max_number = 1000
num_mul = 0
for i in range(max_number):
if i % 3 == 0 or i % 5 == 0:
num_mul += i
print(num_mul)
def mutiple3(i): a = 0 a1 = 0 while a < 1000: a1 = a1 + a a += i
return a1
result = mutiple3(3) + mutiple3(5) - mutiple3(15) print(result)
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum=0;
for(int i=1;i<1000;i++){
if(i%3==0 || i%5==0){
sum+=i;
}
}
System.out.println(sum);
}
}
#include <stdio.h>
void main(void)
{
int sum = 0;
int a = 1;
int i;
for (i = 1; i < 1000; i++)
{
if (a % 3 == 0 || a % 5 == 0)
{
sum = sum + a;
}
a++;
}
printf("1000미만의 자연수에서 3,5의 배수의 총합은 %d이다", sum);
}
C언어로 작성해봤습니다.
#include <stdio.h>
int main(void) {
int i = 0, sum = 0;
while (i <= 1000) {
i++;
if (i % 3 == 0 || i % 5 == 0) {
sum += i;
}
}
printf("%d\n", sum);
return 0;
}
n = input()
result = 0
for i in range(1,int(n)):
if i % 3 == 0:
result = result + i
elif i % 5 == 0:
result = result + i
elif i >= 15:
if i % 15 == 0:
result = result + i
print("result :", result)
#입력 : 없음
#함수 : 3의배수 리스트+ 5의배수리스트를 set으로 중복제거 후 더하기연산
#출력 : 3과 5의 배수들의 합
list3 = ([i*3 for i in range(1,1000) if i*3<1000])
list5 = ([i*5 for i in range(1,1000) if i*5<1000])
final_list = list(set(list3+list5))
print(final_list)
result = 0
for i in final_list:
result += i
print(result)
int main() { int sum1,sum2, sum3, sum; for(int i=0; i<1000;i++) { if(i%3 == 1) { sum1 += i; } if(i%5 == 1) { sum2 += i; } if(i%15 == 1) { sum3 += i; } }
sum = sum1 + sum2 - sum3; printf("%d",sum); }
total=list(range(0,1001)) answer=[] for i in total : if int(total[i])%15==0 : answer.append(total[i]) elif int(total[i])%5==0 : answer.append(total[i]) elif int(total[i])%3==0 : answer.append(total[i]) print(sum(answer))
s=[ ] for i in range(1000): if i%3 or i%5 ==0: s.append(i)
sum=0 for in in range(len(s)): sum sum +s[i] print(sum)
``````{.python}
def multiples_of_3_and_5(n):
list = []
for i in range(1, n):
if i % 3 == 0 or i % 5 == 0:
list.append(i)
return sum(list)
print(multiples_of_3_and_5(10))
result = []
for i in range(1, 1000):
if (i/3).is_integer():
result.append(i)
elif (i/5).is_integer():
result.append(i)
result
x = sum(result)
print(x)
int sum = 0;
for(int i = 1; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0)
sum += i;
}
System.out.println(sum);
#include <stdio.h>
int b=0;
int main()
{
for(int a=1;a<1000;a++)
if(a%3==0 || a%5==0) b+=a;
printf("%d",b);
}
int main() { int i, sum = 0;
for (i = 1; i < 1000; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
sum += i;
}
}
printf("%d", sum);
return 0;
}
x = 1000
sum=0
for i in range(1,(x)):
if i%3==0:
sum+=i
elif i%5==0:
sum+=i
else:
continue
print(sum)
int a = 0; int sum = 0;
for(a=1; a<10; a++)
{
if((a%3==0) || (a%5==0))
{
sum+=a;
}
}
System.out.println(sum);
}
total = 0
for i in range(1000):
if i%3 == 0 or i%5 == 0:
total += i
print(total)
다들 어떻게 한줄로 만들 생각하고 코딩 하시는지 정말 신기하네요
int sum = 0;
for(int i=0; i<1000; i++) {
if((i%3 ==0) || (i%5==0)) {
sum += i;
}
}
System.out.println(sum);
Java SE8버전 입니다.
class Solution{
public int multiples(int num){
int total = 0;
for(int i = 0; i < num; i++){
if(i % 3 == 0 || i % 5 == 0){
total += i;
}
}
return total;
}
}
sum3=0
sum5=0
sum15=0
for n in range(1000):
if n%3==0:
sum3=sum3+n
elif n%5==0:
sum5=sum5+n
elif n%15==0:
sum15=sum15+n
else:
pass
print(sum3+sum5-sum15)
x3=0
x5=0
x15=0
sum=0
maxValue=1000
while(1):
x3=x3+3
x5=x5+5
x15=x15+15
if(x3<maxValue):
sum=sum+x3
if(x5<maxValue):
sum=sum+x5
if(x15<maxValue):
sum=sum-x15
if(x3>=maxValue and x5>=maxValue):
break
print('sum : ',sum)
조금 다른식으로 풀어봤습니다. %는 cpu 연산을 쓸데없이 많이 잡아먹기 떄문에 반복문에서는 부담이 심하다고 봐서 걍 배수로(덧샘으로) 계산하는 방법입니다. 15의 배수를 쓰는 이유는3과 5의 최소공배수를 써서 중복값을 제거하기 위해서입니다. 결과는 동일합니다.
C로 간단하게 작성해봤습니다.
233168
#include <stdio.h>
void main() {
int num = 0;
for (int i = 0; i < 1000; i++)
{
if (i % 3 == 0 || i % 5 == 0) {
num += i;
}
}
printf("%d\n", num);
}
//3의 배수 총합 + 5의 배수 총합 - 15의 배수 총합
#include<stdio.h>
int main(void)
{
int sum_of_3x, sum_of_5x, sum_of_15x, end;
end = 1000/3;
sum_of_3x = 3*end*(end+1)/2;
end = 1000/5;
sum_of_5x = 5*end*(end+1)/2;
end = 1000/15;
sum_of_15x = 15*end*(end+1)/2;
printf("The answer is %d\n", sum_of_3x+sum_of_5x-sum_of_15x);
return 0;
}
Java로 풀었습니다.
int sum = 0;
for(int i=1; i<1000; i++) {
if(i%3==0||i%5==0)
sum += i;
}
System.out.print(sum);
public class sample {
public int SumAll(int a) {
int temp = 0;
for (int i = 0;i <= a; i++) {
if (i%3 ==0 || i%5 ==0) {
temp +=i;
}
}
return temp;
}
public static void main(String[] args) {
int val = 9;
sample test = new sample();
int result = test.SumAll(val);
System.out.println(result);
}
}
import java.util.Scanner;
public class ex {
public static void main(String[] args) {
int hap=0;
for(int i =0; i<1000; i++) {
if((i%3==0) || (i%5==0))
hap+=i;
}
System.out.println("총합은 "+hap+"입니다.");
}
}
result = 0
for i in range(1,1000):
if i % 3 == 0:
result = result + i
elif i % 5 == 0 :
result = result + i
result
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);
}
# Multiples of 3 and 5
nn = list(range(1000))
# print(nn)
multiples = []
for i in nn:
if nn[i-1] % 3 == 0 or nn[i-1] % 5 == 0:
multiples.append(nn[i-1])
# print(multiples)
print(sum(multiples))
중간중간에 디버그 형식으로 프린트 함수 넣었습니다.
처음으로 코딩도장에 풀이 남겨봅니다.
num = []
for x in range(1000):
if x%3 == 0 or x%5 == 0:
num.append(x)
sum(num)
리스트로 접근했습니다.
public static void main(String[] args) {
int result = 0;
for (int i=1;i<1000 ;i++ ) {
if (i % 3 == 0 || i % 5 == 0) {
result += i;
}
}
System.out.println(result);
}
public class Euler1 {
public static void main(String[] args) {
int result = 0;
for(int i=1; i<1000; i++) {
if((i%3==0)||(i%5==0)) {
result += i;
}
}
System.out.println(result);
}
}
java
number_a = list(range(0, 1000 + 1, 3))
number_b = list(range(0, 1000 + 1, 5))
print(sum(number_a) + sum(number_b))
공부시작한지 얼마 안 되서 맞는지도 모르겠네요..
a = 0
for i in range(3,1000,3):
a += i
for i in range(5,1000,5):
a += i
for i in range(15, 1000, 15):
a -= i
print(a)
sum = 0 for i in range(1, 1000) : if i % 3 == 0 or i % 5 == 0: sum += i
print(sum)```{.python} sum = 0 for i in range(1, 1000) : if i % 3 == 0 or i % 5 == 0: sum += i
print(sum) ```
sum_3=0
sum_5=0
sum_15=0
for i in range(1, 1001):
if i%3==0:
sum_3=sum_3+i
for j in range(1, 1001):
if j%5==0:
sum_5=sum_5+j
for w in range(1, 1001):
if w%5==0:
sum_15=sum_15+w
result=sum_3+sum_5-sum_15
print(result)
list = []
i = 1
while i < 1000:
if i % 3 == 0:
list.append(i)
i += 1
elif i % 5 == 0:
list.append(i)
i += 1
else:
i += 1
sum(list)
완전 초보입문자입니다ㅎㅎ 잘부탁드립니다!
얼마 전부터 파이썬 공부 시작했는데 효율성보다는 푸는 것에 집중해서 한 문제씩 풀어봅니다!
# Multiples of 3 and 5
'''
10 미만의 자연수에서 3과 5의 배수를 구하면 3, 5, 6, 9이다. 이들의 총합은 23이다.
1000미만의 자연수에서 3, 5의 배수의 총합을 구하라.
'''
all_number = []
for i in range(1,1000) :
all_number.append(i)
n_3 = []
n_5 = []
n_15 = []
for i in all_number :
if i%3 == 0 :
n_3.append(i)
elif i%5 == 0 :
n_5.append(i)
elif i%15 == 0 :
n_15.append(i)
answer = 0
for i in n_3 :
answer = answer + i
for i in n_5 :
answer = answer + i
for i in n_15 :
answer = answer - i
print(answer)
import Foundation
var result = 0
for n in 1...1000 {
if n % 3 == 0 || n % 5 == 0 {
result = result + n
print(result)
}
}
스위프트 풀이입니다.
int main() { int sum = 0; for (int i = 0; i < MAX_NUM; i++){
if (i % 3 == 0)
sum += i;
else if (i % 5 == 0)
sum += i;
}
printf("Result = [%d]", sum);
return 0;
}
int a[1000];
int main(void) { int i; int k = 0;
for(i=0;i<1000;i++) { if(i%3==0 || i%5==0) { a[k] = i; k++; } }
int sum = 0; for(i=0;i<k;i++) sum+=a[i];
printf("%d", sum);
return 0; }
multiples =[]
for i in range(1000):
if i % 3 == 0 or i % 5 == 0:
multiples.append(i)
print(sum(multiples))
#include <stdio.h>
int main()
{
int N = 1000;
int i;
int sum = 0;
for (i = 1; i < 1000; i++)
{
if ((i % 3 == 0) || (i % 5 == 0))
{
sum += i;
}
}
printf("%d", sum);
}
result=[]
for i in range(1,1000):
if i%3==0: result.append(i)
elif i%5==0: result.append(i)
else: pass
print(sum(result))
#sum_of_multiples_of_3_or_5_below_1000.py
sum = 0;
for i in range(1,1000):
#add multiples of 3 or 5
if i%3 == 0 or i%5==0:
sum +=i
print sum
# Multiples of 3 and 5
sum = 0 # 총 합을 저장할 변수
for i in range(1, 1000) : # for문을 이용하여 1부터 999까지 반복
if i % 3 == 0 or i % 5 == 0 : # i가 3의 배수이거나, 5의 배수이면 참
sum += i # 참이되는 i값을 더하여 저장
print(sum)
class MultipleSum:
def __init__(self,a,b):
self.a = a
self.b = b
def find_lcm(self):
a = self.a
b = self.b
gcd = 0
while not gcd:
if max(a,b) % min(a,b) == 0:
gcd = min(a,b)
elif max(a,b) % min(a,b) != 0:
temp = a
a = min(a,b)
b = max(temp,b) % min(temp,b)
return (self.a*self.b) / gcd
def sum(self):
lcm = self.find_lcm()
print(lcm)
a_sum = sum(i*self.a for i in range(1,9999) if i*self.a < 1000)
b_sum = sum(j*self.b for j in range(1,9999) if j*self.b < 1000)
lcm_sum = sum( k*lcm for k in range(1,9999) if k*lcm < 1000)
print('{}'.format(a_sum+b_sum-lcm_sum))
x = []
y = []
for i in range(1,1000):
a = 3*i
if a < 1000:
x.append(a)
else:
pass
for i in range(1,1000):
b = 5*i
if b < 1000:
y.append(b)
else:
pass
x.extend(y)
result = sum(set(x))
print(result)
시작한 지 2주 된 초보입니다! 많이 배워야겠네요!
let kk = 1000;
let k3= 0;
for (i=0; i<kk; i++){
if( (i%3==0)|(i%5==0) ){
k3 = k3+i
}
}
console.log(k3)
public class example001 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum =0;
for (int i = 0; i < 1000; i++) {
if(i%3==0) {
sum += i;
}else if(i%5==0) {
sum+= i;
}
}
System.out.println(sum);
}
}
public static void main(String[] args) {
int num=10000;
int sum=0;
for(int i=1; i<num; i++) {
if(i%3==0 || i%5==0) {
sum+=i;
}
}
System.out.println(sum);
const a = 3
const b = 5
let c = 0
for (let i=0 ; i<1000 ; i++){
if (i%3 === 0) {
c = c+i
} else if (i%5 === 0 && i%15 !== 0) {
c = c+i
}
}
console.log(c)
public class example001_MultiplesOf3and5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum =0;
for (int i = 0; i < 1000; i++) {
if(i%3==0) {
sum += i;
}else if(i%5==0) {
sum+= i;
}
}
System.out.println(sum);
}
}
var sumResult = 0
for i in 0 ..< 1000 {
if i % 3 == 0 || i % 5 == 0 {
sumResult += i
}
}
print(sumResult)
a = [] b = [] for i in range (3,1000,3): if i>999: break a.append(i) for j in range (5, 1000,5): if i>999: break b.append(j) c = a + b c = set(c) print(c)
sum3 = 0 #3의 배수의 합
sum5 = 0 #5의 배수의 합
for i in range(1,1001): #1에서 1000까지 반복
if i%3 == 0:
sum3 +=i
elif i%5 == 0:
sum5 +=i
print(sum3 + sum5)
s = 0
for i in range(1000):
if i % 3 == 0 or i % 5 == 0:
s += i
else:
i += 1
print('1000미만의 자연수에서 3, 5의 배수의 총합은 %s입니다.'%s)
int sum=0;
for(int i=0;i<=1000;i++) {
if(i%3==0 || i%5==0) {
sum+=i;
}
}
System.out.print(sum);
```{.java}
int sum=0;
for(int i=0;i<=1000;i++) {
if(i%3==0 || i%5==0) {
sum+=i;
}
}
System.out.print(sum);
```
#include <iostream>
using namespace std;
int main(){
int sum = 0;
for (int i = 1; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0){
sum += i;
}
}
cout << sum << endl;
return 0;
}
C++입니다.
i = 1
gongbaesoo = 0
while i < 1000:
if i%3 == 0 or i%5 == 0:
gongbaesoo = gongbaesoo + i
i += 1
print(gongbaesoo)
a = set()
for i in range (1,1000):
if i%3 == 0 or i%5==0 :
a.add(i)
sum = 0
for i in a:
sum += i
print(sum)
sum = 233168
#include<stdio.h>
int main(void) {
int sum = 0;
for (int i = 0; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0) {
sum += i;
}
}
printf("%d", sum);
return 0;
}
JAVA
import java.util.Scanner;
public class main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
System.out.println(filter(a));
}
public static int filter(int end) {
int sum=0;
for(int i=1;i< end;i++)
{
if(i%3==0 || i%5==0)
sum +=i;
}
return sum;
}
}
public class Multiples {
public static void main(String[] args){
int sum15=0;
int sum5=0;
int sum3=0;
int x3=1;
int x5=1;
int x15=1;
while(x3*3<1000){
sum3 +=x3*3;
x3++;
}
while(x5*5<1000){
sum5 +=x5*5;
x5++;
}
while(x15*15<1000){
sum15 +=x15*15;
x15++;
}
System.out.println(sum3+sum5-sum15);
}
}
list = [] for i in range(1, 1000): if i % 3 == 0 or i % 5 == 0: list.append(i) a = sorted(list) print(sum(a))
public static void main(String[] args) { int total = 0; for (int i = 0; i < 1000; i++) { if (i % 3 == 0 || i % 5 == 0) { total += i; } } System.out.println(total); } }
a = 999
b=[]
for i in range(1,a//3+1):
b.append(3*i)
for i in range(1,a//5+1):
b.append(5*i)
for i in range(1,a//15+1):
b.remove(15*i)
sum(b)
public class Multiple_of_3_and_5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum = 0;
for(int i=1; i<1000; i++) {
if( (i % 3) == 0)
sum += i;
else if( (i % 5) == 0)
sum += i;
}
System.out.println(sum);
}
}
#include <stdio.h>
void main() {
int i=0, sum=0;
for (i = 0; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0)
sum += i;
}
printf("합계는: %d입니다.\n", sum);
}
#82 Multiples of 3 and 5
"""
파이썬으로 코딩을 시작한지 5일차입니다.
저는 1000미만의 3의 배수와 5의 배수의 합을 각각 구한 뒤, 겹치는 15의 배수를 빼는 방식으로 문제를 해결해보았습니다.
"""
n=0
intsum = 0
x = 0
while x<1000:
n = n+1
x = 3*n
if x>=1000: break
intsum = intsum+x
n=0
y = 0
while y<1000:
n = n+1
y = 5*n
if y>=1000: break
intsum = intsum+y
n=0
z = 0
while z<1000:
n = n+1
z = 15*n
if z>=1000: break
intsum = intsum-z
print(intsum)
답은 233168입니다. 조언과 가르침은 달게 받겠습니다.
C로 작성했습니다.
int main() {
int sum = 0;
for (int i= 0; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0) {
sum += i;
}
}
printf("총합 : %d", sum);
return 0;
}
int main() { int i = 0, s = 0;
for (int i = 0; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0) {
s += i;
}
}printf("%d", s);
}
c언어로 풀었습니다.
a,b,c,x,y,z=0,0,0,0,0,0
for a in range(3,1001,3):
x+=a
for b in range(5,1001,5):
y+=b
for c in range(15,1001,15):
z+=c
print(x+y-z)
이게 맞는지 잘 모르겠습니다. 조언좀 해주십쇼 ㅠ 파이썬 배우고 있는 2주차 신생아입니다 ㅎ.
three_list = []
five_list = []
for i in range(1,1000) :
if i%3 == 0 :
three_list.append(i)
elif i%5 == 0 :
five_list.append(i)
sum = 0
for digit in three_list :
sum = sum + digit
for digit in five_list :
sum = sum + digit
print( sum )
func solution(inputValue:Int) {
var sum:Int = 0
for i in 1..<inputValue {
if i%3 == 0 {
sum += i
}
else if i%5 == 0 {
sum += i
}
}
print("result:\(sum)")
}
solution(inputValue: 1000)
sum = 0
for num in range(1, 1000):
if num % 3 == 0:
sum += num
elif num % 5 == 0:
sum += num
print(sum)
파이썬에서 작성했고 for문 이용해서 1부터 999까지의 데이터를 선별해서 더한 코드입니다.
a = set()
for i in range(0, 1001):
if i % 3 == 0 or i % 5 == 0:
a.add(i)
b = 0
for i in a:
b += i
print(b)
public class quiz1 {
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.print(sum);
}
}
#1000아래 모든 3,5,의 배수의 합
a=0
for i in range(1000):
if (i%3)==0:
a+=i
continue
if (i%5)==0:
a+=i
continue
print(a)
class Main {
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 = 0
for n in range(1000) :
if n%3 == 0 or n%5 ==0 :
sum = sum + n
continue
print(sum)
``````{.python}
n = 0
sum = 0
for n in range(1000) :
if n%3 == 0 or n%5 ==0 :
sum = sum + n
n = n + 1
continue
print(sum)
def Euler(n):
addition = 0
for i in range(1000):
if i%3==0 or i%5==0:
addition = addition + i
else:
continue
print(addition)
return addition
Euler(10)
public class a {
public static void main(String[] args){
int sum = 0;
for(int i=1;i<1000;i++){
if(i%3==0||i%5==0){
sum = sum + i;
}
}
System.out.println(sum);
}
}
class Program
{
static void Main(string[] args)
{
int sum = 0;
for(int i = 1; i <= 1000; i++)
{
if(i % 3 == 0 || i % 5 == 0)
{
sum = sum + i;
}
}
Console.WriteLine(sum);
}
}
public class Program
{
public static void Main(string[] args)
{
var a = Enumerable.Range(1, 999);
Console.WriteLine($"{a.Where(i => i % 3 == 0 || i % 5 == 0).Sum()}");
}
}
Scanner sc = null;//Scanner 객체는 입력을 받고자 한 것입니다.
sc = new Scanner(System.in);//그러니 이거 말고 그냥 input = 원하는수 하셔도 됨.
int input = 0;//입력값
int sum = 0;//
System.out.println("자연수를 입력해주세요.");
input = sc.nextInt();
input --;//미만이니까 1을 줄이자.
for(int i = 0; i < (input / 3); i++) {//3의 몫 까지만 반복하면 됨
System.out.print(" " + (i + 1)*3);
sum += (i + 1) * 3;
}
System.out.println("");
for(int i = 0; i < (input / 5); i++) {//5의 몫 까지만 반복
System.out.print(" " + (i + 1)*5);
sum += (i + 1)* 5;
}
System.out.println("");
for(int i = 0; i < (input / 15); i++) {//15의 몫까지만 반복
System.out.print(" " + (i + 1)*15);
sum -= (i + 1) * 15;
}
System.out.println("");
System.out.println("1부터 " + ++input + "미만까지 3 과 5 의 배수의 합은 "+ sum + " 입니다.");
sc.close();
JAVA, 3반복문. 비효율적이지만 보기 쉬울...까?
package test;
public class Test { public static void main(String[] args) { int sum = 0; for(int i=0;i<10;i++) { if(i%3==0 || i%5==0) { sum += i; } } System.out.println(sum); } }
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Project1
{
class Class1
{
static void Main()
{
int i = 1000;
int x, y, z;
i--; //미만처리
x = i / 3; //3
y = i / 5; //5
z = i / 15; //중복삭제용
x = x * (x + 1);
y = y * (y + 1);
z = z * (z + 1);
Console.WriteLine("{0}",
(x*3+y*5-z*15)/2);
}
}
}
c#입니다. 답은 233168나왔습니다.
sum = 0
for num in range(1000):
if num % 3 == 0 or num % 5 == 0:
sum += num
else:
continue
print(sum)
#include <stdio.h>
main(){
int sum = 0;
int add = 1;
while(add <= 1000){//1000까지 반복
if(add % 3 == 0 || add % 5 == 0){
sum += add;
} // 3의 배수인지, 5의 배수인지 판단
add++; // 맞다면 합산
}
printf("%d", add);// 출력
}
#include <stdio.h>
int main()
{
int sum = 0;
for (int i = 1; i < 1000; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
sum = sum + i;
}
}
printf("%d", sum);
return 0;
}
public class MultipleTest {
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("3의배수이자 5의배수인수의 합은"
+sum+"입니다.");
}
}
import java.util.Scanner;
public class Oiler {
public static void main(String[] arrgs){
Scanner sc = new Scanner(System.in); // console input
int limit = Integer.parseInt(sc.next());
int sum = 0;
for(int i=1; i < limit; i++){
sum += i % 3 == 0 || i % 5 == 0 ? i : 0;
}
System.out.println(sum);
}
}
def add(n):
result = 0
for i in range(n):
if i %3 == 0 or i % 5 == 0:
result +=i
return result
add(1000)
int main() { //10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다. //1000미만의 자연수에서 3,5의 배수의 총합을 구하라. int result = 0;
for(int i=1; i<1000 ;i++)
{
if(i%3==0 || i%5==0){
result += i;
}
}
printf("result : %d", result);
return 0;
}
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);
}
N = 1000 n_sum=0 mul = 3*5 for i in range(N): if i% mul == 0: n_sum+=i elif i%5 == 0: n_sum+=i elif i%3 == 0: n_sum += i print(n_sum)
def get_test(a, limit):
sum = 0
for i in range(int(limit/a)):
temp = a*(i+1)
if(temp%a == 0):
sum += temp
return sum
a_3_sum=get_test(3,1000)
a_5_sum=get_test(5,1000)
print("sum : ", a_3_sum + a_5_sum)
answer =[]
for i in range(1000): if i%3 ==0: answer.append(i) elif i%5 ==0: answer.append(i) print(sum(answer))
sum_set = set()
for i in range(1000):
if i%3 == 0 or i%5 == 0:
if i != 0:
sum_set.add(i)
print(sum(sum_set))
#include <stdio.h>
int main(){
int sum=0;
for(i=1;i<=1000;i++)
{
if(i%3==0||i%5==0)
sum+=i;
}
printf("%d",sum);
return 0;
}
c언어 사용-루프사용 답:234168
# list initialization
list_num = []
# searching 1 to 1000 (excluding 1000)
for i in range(1, 1000):
if i % 3 == 0 or i % 5 == 0:
list_num.append(i)
# summation
sum_overall = sum(list_num)
print(sum_overall)
start,stop=map(int,input().split())
a=[]
for i in range(start,stop):
if i%3==0 or i%5==0:
a.append(i)
print('\n',sum(a))
void main() {
int sum_t = 0;
int sum_f = 0;
int sum_tf = 0;
int result;
for (int i = 0; i < 1000; i++) {
if (i % 3 == 0) {
sum_t = sum_t + i;
}
}
for (int j = 0; j < 1000; j++) {
if (j % 5 == 0) {
sum_f = sum_f + j;
}
}
for (int k = 0; k < 1000; k++) {
if (k % 15 == 0) {
sum_tf = sum_tf + k;
}
}
result = sum_t + sum_f - sum_tf;
cout << "1000 미만의 자연수에서 3, 5의 배수의 총합은 " << result << " 입니다." << endl;
}
class euler{
public static int main(String[] a) {
int result=0;
for(int i = 1; i<1000 ; i++) {
if(i%3==0|i%5==0) {
result = result + i;
}
}
return result;
}
}
const num = 1000;
let sum = 0;
for (let i = 1; i <= num; i++) {
if (i % 3 === 0 || i % 5 === 0) {
sum += i;
} else {
}
}
console.log(sum);
import java.util.ArrayList;
public class MultipleOf3and5 {
public static void main(String[] args) {
ArrayList<Integer> nums = new ArrayList<Integer>();
int total = 0;
for(int i=1; i<100; i++) {
if(i%3==0 || i%5==0) {
nums.add(i);
}
}
for(int k=0; k<nums.size();k++) {
total +=nums.get(k);
}
System.out.println(total);
}
}
public class MultiplesOf3And5 {
// 10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다.
// 1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
public static void main(String[] arg) {
int sum = 0;
for(int i = 1; i < 1000; i++) {
if(i%3 == 0 || i%5 ==0) {
System.out.println("sum + i : " + sum + " + " + i);
sum = sum + i;
System.out.println("sum의 : " + sum);
System.out.println("");
}
}
}
public static int sumNumber(int number) {
int sum = 0;
for(int i = 1; i < number; i++) {
if(i % 3 == 0 || i % 5 == 0) {
sum += i;
}
}
return sum;
}
public class multiple3n5 {
public static void main(String[] args) {
int sum = 0;
for(int i = 3; i <= 1000; i++) {
if(i % 3 == 0 || i % 5 == 0) {
sum += i;
}
}
System.out.println(sum);
}
}
a=[]
b=[]
for i in range(1, 10) :
if i%3 == 0 :
a.append(i)
elif i%5 == 0 :
b.append(i)
else :
continue
for j in b :
if j not in a :
a.append(j)
print(sum(a))
public class Multiples {
private static final int[] naturalNum = {3, 5};
public static void main(String[] args) {
System.out.println(solution(naturalNum, 1000));
}
public static int solution(int[] num, int maxNum) {
int result = 0;
for (int numIdx = 0; numIdx < num.length; numIdx++) {
for (int idx = 0; idx < maxNum; idx++) {
if(idx%num[numIdx]==0) result = result + idx;
}
}
return result;
}
}
#include <iostream>
using namespace std;
int main() {
int sum = 0;
for (int i = 1; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0)
sum += i;
}
cout << sum << endl;
return 0;
}
using System;
namespace _62일차_10월02일
{
class MainApp
{
//10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다.
//1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
static void Main(string[] args)
{
int Total = 0;
for (int i = 0; i < 1000; i++)
{
if (i % 3 == 0 || i % 5 == 0)
Total += i;
}
Console.WriteLine($"Result : {Total}");
}
}
}
JAVA 반복문으로 이렇게 풀면 되지 않을까요?{.java}
public static void main(String[] args){
int count = 0;
for(int i = 0; i < 1000; i++) {
if (i %% 3 == 0 || i %% 5 == 0) count +=i;
}
System.out.println(count);
}
class GetSum:
def __init__(self):
self.result = 0
def doSum(self,b):
for i in range(1,b):
if i%3==0 or i%5==0:
self.result += i
return self.result
a = GetSum()
b = a.doSum(1000)
print("SUM = ",b)
total=0
for i in range(10): ## 3또는 5의 나머지가 0인 경우 total 변수에 해당 값을 더함 if (i%3==0) or (i%5==0): total += i
print("3,5의 배수의 총합은 :",total)
def solution():
return sum(i for i in range(1000) if i % 3 == 0 or i % 5 == 0)
res = solution()
print(res)
파이썬입니다. 아직 이정도 풀이밖에 못하겠네요..
lis = [1,2]
even_lis = [2]
i = 2
while True:
fib_num = lis[i-1] + lis[i-2]
lis.append(fib_num)
if fib_num % 2 == 0:
even_lis.append(fib_num)
if fib_num > 4000000:
break
i += 1
for i in range (1, 101): if i % 3 == 0: i += i; print("3의 배수의 합은 %i 입니다." %i)
for j in range (1, 101): if j % 5 == 0: j += j; print("5의 배수의 합은 %i 입니다." %j)
for k in range (1, 101): if k % 15 == 0: k += k; print("15의 배수의 합은 %i 입니다." %k)
p = i + j - k print("정답은",p,"입니다.")
#include <stdio.h>
int main()
{
int a = 3, b = 5, c = 1000, sum = 0;
for (int i = 1; i * a < c; i++) {
sum += i * a;
}
for (int i = 1; i * b < c; i++) {
sum += i * b;
}
printf("%d\n", sum);
_getch();
return 0;
}
set1=set()
set2=set()
for i in range(3,1000,3):
set1.add(i)
for k in range(5,1000,5):
set2.add(k)
print(sum(set1.union))
under_tho = []
for i in range(0,1000,5):
under_tho.append(i)
for z in range(0,1000,3):
under_tho.append(z)
set_under_tho = set(under_tho)
print(sum(set_under_tho))
package dojang;
public class do1 {
public static void main(String[] args) {
int sum=0;
for(int i=1; i<1000;i++) {
if (i%3==0||i%5==0)
sum+=i;
}
System.out.println(sum);
}
}
package dojang;
public class do1 {
public static void main(String[] args) {
int sum=0;
for(int i=1; i<1000;i++) {
if (i%3==0||i%5==0)
sum+=i;
}
System.out.println(sum);
}
}
#include <stdio.h>
int main(void)
{
int sum = 0; // 3과 5의 배수의 합을 저장 할 변수 설정.
int i;
for (i = 0; i < 1000; i++) // 1000까지의 숫자 증가
{
if (i % 3 == 0 || i % 5 == 0) // i % 3 == 0 -> 3의 배수라면, || -> 또는 i % 5 == 0 -> 5의 배수라면
{
sum += i; // 3의 배수와 5의 배수의 값을 더하고 값을 저장해라.
}
}
printf("%d", sum); // 출력
return 0;
}
반복문으로 풀어봤읍니다.
# 1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
sum = 0
for n in range(0,1000):
if n % 3 == 0 or n % 5 == 0:
sum += n
print("총합은: "+ str(sum))
result = 0
for i in range(0,1000,0) if i % 3 == 0 or i % 5 == 0 : result = result + i else : pass print(result)
package Practice;
public class MultipleOfThreeAndFive {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i < 1000; i++) {
if(i % 3 == 0 || i % 5 == 0) {
sum += i;
}
}
System.out.println(sum);
}
}
a3 = []
a5 = []
for i in range(1,1000):
if i % 3 == 0:
a3.append(i)
elif i % 5 == 0:
a5.append(i)
print(sum(set(a3+a5)))
number=0
data=list(range(0,1000))
for i in data:
if i%3==0 or i%5==0:
number = number+i
print(number)
li = list(range(1,1000)) mul = []
for i in li: if i % 3 == 0: mul.append(i) elif i % 5 == 0: mul.append(i)
s = sum(mul) print(s)
package myTest;
public class For2{
public static void main(String[] args) {
int i = 1000;
int sum = 0;
for (int a = 0; a < i; a++) {
if(a % 3 == 0 || a % 5 == 0) {
sum += a;
}
}
System.out.println(sum);
}
}
public class Prac {
public static void main(String[] args) {
int sum=0;
for (int i = 1; i < 1000; i++) {
if(i%3==0 || i%5==0) {
sum+=i;
}
}
System.out.println(sum);
}
}
int sum = 0;
for(int i = 1; i < 1000; i++) {
if(i % 3 == 0 || i % 5 == 0) {
sum += i;
// System.out.print(i);
}
}
System.out.println("이들의 총합은 "+ sum + "이다.");
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);
}
lst = set()
for i in range(1, 1000//3 + 1): lst.add(3*i)
for i in range(1, 1000//5 + 1): lst.add(5*i)
print(sum(lst))
package main1;
public class main1 {
public static void main(String[] args) {
int sum = 0;
for(int i =0; i<1000; i++) {
if(i % 3 == 0) {
sum += i;
}
else if(i % 5 == 0) {
sum += i;
}
}
System.out.println(sum);
}
}
int main(void) { int limit, multiple1, multiple2; int sum1 = 0, sum2 = 0, minus =0; int total;
printf("기준값을 입력하세요. \n");
scanf("%d", &limit);
printf("첫 번째 배수를 입력하세요. ");
scanf("%d", &multiple1);
printf("두 번째 배수를 입력하세요. ");
scanf("%d", &multiple2);
for (int i = 1; i <= (limit-1) / multiple1; i++) {
sum1 += i;
}
for (int j = 1; j <= (limit - 1) / multiple2; j++) {
sum2 += j;
}
for (int w = 1; w <= (limit - 1) / (multiple1 * multiple2); w++) {
minus += w;
}
printf("%d 의 배수의 총합은 %d 입니다.\n", multiple1, multiple1*sum1);
printf("%d 의 배수의 총합은 %d 입니다.\n", multiple2, multiple2*sum2);
//최소 공배수를 고려안했다...
total = multiple1*sum1 + multiple2*sum2 - minus*(multiple1*multiple2);
printf("%d 미만 %d 의 배수와 %d배수의 총합은 %d 입니다.\n", limit, multiple1, multiple2, total);
}
package javabase;
public class javaExample {
public static void main(String[] args) {
// TODO Auto-generated method stub
//1000미만 자연수에서 3과 5의 배수 총합을 구하라
int a=0;//(3의 배수)
int b=0;// (5의 배수)
int c = 0; //3의 배수 합계
int d = 0;//5의 배수 합계
for(a=0; a<1000; a++) {
if(a%3==0 || a%5==0)
c+=a;
}
System.out.printf("3의 배수 합계: %d\n", c);
public class pro1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum = 0;
for(int i=0; i<1000; i++) {
if(i%3==0 || i%5==0)
sum+=i;
}
System.out.println(sum);
}
}
package main;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int temp = 0;
for (int i = 1; i <= 1000; i++) {
if(i%3==0) {
temp += i;
}else if(i%5==0) {
temp+=i;
}
}
System.out.println(temp);
}
}
#include <iostream>
using namespace std;
int main() {
int a=3;
int asum=0;
int b=5;
int bsum=0;
while (a<1000) {
asum += a;
a+=3;
}
cout << asum << endl;
while (b<1000) {
bsum += b;
b+=5;
}
cout << bsum << endl;
int csum=0;
int c=15;
while(c<1000) {
csum +=c;
c+=15;
}
int sum=asum+bsum-csum;
cout << sum;
return 0;
}
흔한 답 기록용
def Multiplesof(num):
aa=0
for i in range(num):
if i % 3 == 0 or i % 5 == 0:
aa += i
return aa
print(Multiplesof(10))
c++로 작성했습니다.
i를 1~999까지 바꿔가며 3,5로 나누고 그 나머지가 0일 때 sum에다 i를 더하는 방식을 사용했습니다.
정답은 233168!
#include<iostream>
using namespace std;
int main(void)
{
int i,sum=0;
for(i=1;i<1000;i++)
{
if((i%3==0)||(i%5==0))
sum+=i;
}
cout << sum;
return 0;
}
# 풀이1
result = 0
for i in range(1000):
if i % 3 == 0 or i % 5 == 0:
result += i
print(result)
# 풀이2
print(sum(list(i for i in range(1000) if i % 3 == 0 or i % 5 == 0)))
파이썬 코드입니다. 첫번째는 생각나는대로 풀었구요, 두번째는 점프투파이썬 내용 중 '리스트 내포' 보고 풀었습니다.
파이썬입니당 %기호 안 쓰고 해봤습니당
def belowoh(number):
result=[]
i=1
while number*i<1000:
result.append(number*i)
i+=1
a=map(int,result)
b=sum(a)
return b
print(belowoh(3)+belowoh(5)-belowoh(15))
result = 0
for x in range(1,1000):
if x % 3 == 0:
result += x
elif x % 5 == 0:
result += x
print(sum(x))
li = list(range(1, 1000))
sumofmultiple = 0
for i in li:
if i % 3 == 0:
sumofmultiple += i
elif i % 5 == 0:
sumofmultiple += i
print(sumofmultiple)
three_list = [x for x in range(3, 1000, 3)]
five_list = [x for x in range(5, 1000, 5)]
fifteen_list = [x for x in range(15, 1000, 15)]
sum_list = sum(three_list) + sum(five_list) - sum(fifteen_list)
print(sum_list)
#include <stdio.h>
#define _CRT_SECURE_NO_WARNINGS
int main(void)
{
int sum = 0;
for (int n = 1; n < 334; n++)
{
sum = sum + 3 * n;
}
for (int N = 1; N < 200; N++)
{
sum = sum + 5 * N;
}
for (int S = 1; S < 67; S++)
{
sum = sum - 15 * S;
}
printf("1000미만의 3,5의 배수의 총합 = %d", sum);
}
s1 = set(3*a for a in range(1, 1000 // 3 + 1))
s2 = set(5*b for b in range(1, 1000 // 5))
print(sum(s1 | s2))
3과 5의 배수 1000이하. 3의 배수는 5의 배수는 일의 자리가 5 또는 0 3과 5의 공배수 a=3. 3 6 9 12 b=[range(1,1001)] for i in b: tap while i<=333 tap tap a=a*i print(i)
자바스크립트
let result = 0;
for(let i = 0; i <= 1000; i++) {
if(i % 3 == 0 || i % 5 == 0) {
result += i;
}
}
console.log(result); //234168
파이썬
result = 0
for n in range(1, 1000):
if n % 3 == 0 or n % 5 == 0:
result += n
print(result) # 234168
import java.util.stream.IntStream; public static void main(String[] args) { System.out.println(String.format("정답: %d", foo(1000))); }
private static int foo(int end) {
return IntStream.range(1, end).filter(j -> j%3==0 || j%5==0).sum();
}
여기 답은 어디서 확인 하는건가요?
찾을 수가 없네요... 이거 그냥 복붙했어요....
sum3 = 0
sum5 = 0
for x in range(1,1000):
if x%3 ==0:
sum3 += x
elif x%5 ==0:
sum5 += x
else:
pass
print(sum3 + sum5)
sum1 = []
for i in range(1, 1000):
if i % 3 == 0 or i % 5 == 0:
sum1.append(i)
sum2 = sum(sum1)
print(sum2)
using namespace std;
int main() { int sum = 0;
for(int i = 0; i < 1000; i++){
if(i % 3 == 0 || i % 5 == 0){
sum += i;
}
}
cout << sum;
}
첫 풀이라 마크다운이 잘 된 것인지 모르겠습니다. for문과 if문을 사용해보았습니다.
val = 0
for i in range(1, 1000):
if(i % 3 == 0 or i % 5 == 0):
val += i
print(val)
>>> for number in range(1, 1000):
... if number % 3 == 0 or number % 5 == 0:
... sum += number
...
>>> print(sum)
233168
python으로 작성하였으며, 설명은 다음과 같습니다.
for number in range(1, 1000): 반복을 위한 for문.
if number % 3 == 0 or number % 5 == 0: 수가 3의 배수 혹은 5의 배수인지 판단하는 if문.
sum += number: 조건 만족 시 합계 변수에 현재 수 더하기.
print(sum): 합계 출력.
정답은 233168입니다.
public class Basic {
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+sum;
}
}
System.out.println(sum);
}
}
JAVA
int multipleOf3and5 = 0;
for (int i = 1; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0) {
multipleOf3and5 += i;
}
}
System.out.println(multipleOf3and5);
public class day_1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a;
int result = 0;
for(a=1; a<1000; a++) {
if(a%3 == 0 || a%5 == 0) {
result =+a;
}
}
System.out.println("3과 5의 배수의 합은 "+result+" 입니다.");
}
}
result = [] for i in range(1,1000): if i%3 ==0: result.append(i) elif i%5 ==0: result.append(i)
A=set(result) print(sum(A))
result = []
n = 0
while n < 1000:
n += 1
if n % 3 == 0 or n % 5 ==0:
result.append(n)
print(sum(result))
let result = 0
for (let i = 1; i < 1000; i++) {
if (i % 3 === 0 || i % 5 === 0) {
result += i
}
}
console.log(result)
class Main {
public static void main(String[] args) {
int sum3 = 0;
int sum5 = 0;
// 배수의 합을 담을 변수
for(int i = 1; 3*i < 1000; i++) {
sum3 += 3*i;
}
for(int i = 1; 5*i < 1000; i++) {
sum5 += 5*i;
}
// 총합을 구하기 위해 사전판단 반복문 for문 사용
System.out.println("The amount is "+sum3+sum5);
}
}
public class MainClass {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum = 0;
for(int n = 1;n < 1000;n++) {
if(n%3==0 || n%5==0)
sum += n;
}
System.out.print(sum);
}
}
def solution(num):
total = 0
for i in range(num):
if i % 3 == 0 or i % 5 == 0:
total += i
return total
print(solution(1000))
public class Ex1 {
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);
}
}
JS입니다
let result = 0;
for (let i = 1; i < 1000; i++) {
if (i % 3 === 0) {
result += i
} else if (i % 5 === 0) {
result += i
}
}
console.log(result)
package main
import "fmt"
func main() {
X := 0
for i := 0 ; i < 1000 ; i++ {
A := i % 3
if A == 0 {
X += i
}
B := i % 5
if B == 0 {
X += i
C := i % 15
if C == 0{
X -= i
}
}
}
fmt.Println(X)
}
||를 안썼네요. 결과는 나오긴 했습니다만..
#include <stdio.h>
int main()
{
int sum = 0;
for(int i = 1; i < 1000; i++)
{
if(i % 3 == 0 || i % 5 == 0)
{
sum += i;
}
}
printf("%d", sum);
return 0;
}
c언어 입니다
A = input('input? : ') A = int(A) sum = 0 for i in range(A): if i%3 == 0 or i%5 == 0: sum += i
print(sum)```{.python}
```
```{.java}
int sum = 0;
for (int i = 0; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0) {
sum += i;
}
}System.out.println(sum); } }
A = 0
B = 0
sumA = 0
sumB = 0
while 1000 > 3*A:
A += 1
sumA += 3*A
while 1000 > 5*B:
B += 1
sumB += 5*B
print(sumA + sumB)
public class gdsgdgsg {
public static void main(String[] args) {
int nums = 0;
for (int i = 0; i <1000; i++) {
if ( i % 3 == 0 || i % 5 == 0)
nums = nums + i;
}
System.out.println(nums);
}
}
test_list = list() for i in range(1,1000): if i % 3 == 0: print(i, '3의 배수') test_list.append(i) elif i % 5 == 0: print(i, '5의 배수') test_list.append(i)
print(test_list) print(sum(test_list))
test_list = list()
for i in range(1,1000):
if i % 3 == 0:
print(i, '3의 배수')
test_list.append(i)
elif i % 5 == 0:
print(i, '5의 배수')
test_list.append(i)
print(test_list)
print(sum(test_list))
loop 없이 처리 가능합니다. 3과 5의 배수 총 합은 [3의 배수 합 + 5의 배수 합 - (3 * 5) 의 배수 합] 과 동일함.
#include <stdio.h>
#define SUM_UP(N) ((1 + (N)) * (N) / 2) // 1부터 N까지의 합
#define NUM_MULTIPLE(M, a) ((M - 1) / (a)) // M 미만 a 배수의 개수
int main() {
int max = 1000, sum = 0;
sum += 3 * SUM_UP(NUM_MULTIPLE(max, 3));
sum += 5 * SUM_UP(NUM_MULTIPLE(max, 5));
sum -= 15 * SUM_UP(NUM_MULTIPLE(max, 15));
printf("%d", sum);
}
n=int(input("값을 입력하시오"))
i=0
result=0
while 3*i<n:
result=result+3*i
i+=1
i=0
while 5*i<n:
result+=5*i
i+=1
i=0
while 15*i<n:
result-=15*i
i+=1
print(result)
sum = 0
for number in range(1, 1000):
if number % 3 == 0 or number % 5 == 0:
sum += number
print(sum)
public class tutorial {
public static void main(String[] args) {
//10미만의 자연수 저장
int sum =0;
for(int i=1; i<=100; i++) {
if((i%3 == 0) || ( i%5 == 0)) {
sum += i;
}
}
System.out.println(sum);
}
}
number = int(input('Enter a multiple of 10: '))
if number % 10 == 0:
lst = list()
number = number - 1
while number > 0:
if number % 3 == 0 or number % 5 == 0:
lst.append(number)
number = number - 1
print(sum(lst))
else: print('enter a multiple of 10')
i = 0
sum = 0
while i < 1000:
if i % 3 == 0 or i % 5 == 0:
sum = sum + i
else:
pass
i = i + 1
print(sum)
while문으로 해봤어요
package problum;
public class Multiples {
public static void main(String[] args) {
int sum = 0;
for(int i=1; i<=1000; i++) {
if(i % 3 == 0 && i % 5 != 0) {
sum += i;
}
else if(i % 5 == 0) {
sum += i;
}
}
System.out.println("1 ~ 1000사이의 3과 5의 배수의 합은 :" + sum);
}
}
#include<iostream>
int main(void)
{
using namespace std;
constexpr int num = 1000;
int sum = 0;
for (int i = 0; i < num; i++)
{
// 3과 5의 배수는 각 수로 나누었을 때 나머지가 0
if (i % 3 == 0 || i % 5 == 0)
{
sum += i;
}
}
cout << sum;
return 0;
}
#include <stdio.h>
void main() {
int i, sum = 0;
for (i = 1; i < 1000; ++i)
if (i % 3 == 0 || i % 5 == 0) sum += i;
printf("총 합 : %d", sum);
return 0;
}
C언어로 작성
i = 0
result = 0
while i <1000:
i = i + 1
if (i % 3 == 0 or i % 5 == 0):
result = result + i
else:
result = result + 0
print(result)
num_list = list(range(1,1000))
print(sum(set(num_list) - set(num_list[2::3]) - set(num_list[4::5])))
num = int(input('숫자를 입력하세요: ')) list_ = []
for i in range(1, num): if i % 3 == 0 or i % 5 == 0: list_.append(i)
print(sum(list_))
살짝 피즈버즈 느낌으로다가 풀어봤어요
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
int sum = 0;
for(int i = 0; i < 1000; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
sum += i;
}
}
Console.WriteLine(sum);
Console.ReadLine();
}
}
}
#1
hab = 0
for a in range(1,1000):
if a%3 == 0 or a%5 == 0:
hab += a
print(hab)
#2
print(sum(a for a in range(1, 1000) if a%3 ==0 or a%5 ==0))
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i < 1000; i++) {
if ((i % 3) == 0 | (i % 5) ==0) {
sum += i;
}
}
System.out.println(sum);
}
}
233168
Python
x = 0
for i in range(1000):
if i % 3 == 0 or i % 5 == 0:
x = x + i
return print(x)
233168
Go
package main
import "fmt"
func main() {
x := 0
i := 0
for i = 0; i < 1000; i++ {
if i%3==0 || i%5==0 {
x = x + i
}
}
fmt.Println(x)
}
233168
using namespace std;
int main() { int sum1=0,sum2=0,sum3=0;
for (int i = 1; i < 1000; i++) // 정수 1인 i를 999까지 반복한다.
{
if (i % 3 == 0) //3의 배수인 i를 찾기
{
sum1 = sum1 + i; //3의 배수인 i를 sum1에 저장
}
else if (i % 5 == 0) //5의 배수인 i를 찾기
{
sum2 = sum2 + i; //5의 배수인 i를 sum2에 저장
}
else if (i % 3 == 0 && i % 5 == 0) // 3의 배수인 i와 5의 배수인 i를 동시에 만족시키는 i를 찾기
{
sum3 = sum3 + i; //3의 배수와 5의 배수를 둘다 만족하는 i를 sum3에 저장
}
}
cout << sum1 + sum2 - sum3; //3의 배수인 모든수를 더한 sum1과 5의배수인 모든 수를더한 sum2를 더하고
//3과 5의 배수를 동시에 만족하는 모든 수를 더한 sum3를 뺀 값을 출력한다.
return 0;
}
```{.python}
result = 0 for i in range(1, 1000): if i %3 == 0 or i %5 == 0: result += i print(result)
x = 1000 store = 0
for i in range(x): if i % 3 == 0: store += i elif i % 5 == 0: store += i print(store)
public static int multi() {
int sum=0;
for(int i=1;i<1000;i++) {
if(i%3==0 || i%5==0) {
sum+=i;
}
}
return sum;
}
public static void main(String[] args) {
int result = multi();
System.out.println(result);
}
java로 작성했습니다 메서드 이용해서.. 233168
def post(l):
result = []
for i in l:
if i % 3 == 0 or i % 5 ==0:
result.append(i)
b = sum(result)
return b
print(post(list(range(1,1000))))
mul_3_5 = list(x for x in range(1000) if x%3 == 0 or x%5 == 0)
print(sum(mul_3_5))
[코드설명] 1. 0~1000까지 리스트를 만들고, 만약 리스트의 각 요소 중 3과5로 나누었을때 나머지가 각각 0이 나오는 값만 리스트에 담는다. 2. 위 1번의 리스트의 합계를 구한다.
[결과] 233168
def multiple_of_3_and_5():
ans = 0
st = []
for i in range(1, 1001, 3): st.append(i)
for i in range(1, 1001, 5): st.append(i)
for i in set(st): ans += i
print(ans)
result = 0
for i in range(1, 1000):
if i % 3 == 0 or i % 5 == 0 :
result = result + i
print(i)
print(result)
public class ThreeFiveSum {
public static void main(String[] args) {
int sumA = 0, sumB = 0, sumC = 0, sum = 0;
for(int i=1; i<1000; i++) {
if((i%3)==0 && (i%5)!=0)
sumA = sumA + i;
else if((i%5)==0 && (i%3)!=0)
sumB = sumB + i;
else if(i%15==0)
sumC = sumC + i;
}
sum = sumA + sumB + sumC;
System.out.println("이들의 총합은 "+ sum);
}
}
num_li = [] for i in range(1,1000): if i % 3 == 0 or i % 5 ==0: # % 나머지, / 나누기, // 몫 num_li.append(i)
sum(num_li)
int array1000Total = 0;
for(int i=1; i<1000; i++) {
if(i%3 == 0 || i%5 == 0){
array1000Total+=i;
}
}
System.out.println(array1000Total);
multi_3 = [int(i) for i in range(1000) if i%3 == 0]
multi_5 = [int(i) for i in range(1000) if i%5 == 0]
total = multi_3 + multi_5
T = list(set(total))
print(sum(T))
#1 오일러 문제.
# 10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다.
# 1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
kong_set = set()
for i in range(1,1000):
if i % 3 == 0:
kong_set.add(i)
if i % 5 == 0:
kong_set.add(i)
kong_plus = 0
for i in kong_set:
kong_plus = kong_plus + i
print(kong_plus)
def multi_array(a, b, c):
multi = []
for i in range(1, c):
if (i % a == 0) or (i % b == 0):
multi.append(i)
array_sum = sum(multi)
return array_sum
multi_array(3, 5, 1000)
package pk1;
public class SelfTest {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i < 1000; ++i) {
if (i % 3 == 0 || i % 5 == 0) {
System.out.println(i);
sum += i;
}
}System.out.println(sum);
}
}
def calc(value, t1, t2):
set1 = set(range(t1, value, t1))
set2 = set(range(t2, value, t2))
return sum(set1.union(set2))
print(calc(1000, 3, 5))
num = int(input("n 미만의 자연수에서 3, 5의 배수의 총합을 구하려 한다. n의 값을 입력하시오: "))
total = 0
for n in range(1, num):
if n % 3 == 0 or n % 5 == 0:
total += n
print(total)
sumAll = 0
rangeNumber = 1000
for number in range(rangeNumber) :
if number%3 == 0 or number%5 == 0 :
sumAll = sumAll + number
print sumAll
three=[]
result=0
while result < 1000:
three.append(result)
result=result+3
print(three)
#5의 배수 구하기
five=[]
result=0
while result < 1000:
five.append(result)
result=result+5
print(five)
#두 리스트 합치기
total=three+five
#모든 요소값 더하기
result=0
for i in total :
result=result+i
print(result)
int sum = 0;
for(int i = 1; i < 1000; i++ ) {
if( i % 3 == 0 && i % 5 == 0) {
sum += i;
}else if(i % 3 ==0 || i % 5 == 0) {
sum += i;
}
}
System.out.println(sum);
import java.util.stream.IntStream; public static void main(String[] args) { System.out.println(String.format("정답: %d", foo(1000))); }
private static int foo(int end) {
return IntStream.range(1, end).filter(j -> j%3==0 || j%5==0).sum();
}
import java.util.stream.IntStream; public static void main(String[] args) { System.out.println(String.format("정답: %d", foo(1000))); }
private static int foo(int end) {
return IntStream.range(1, end).filter(j -> j%3==0 || j%5==0).sum();
}
def multiple_of_3_and_5_under(x):
list = []
for i in range(1, x):
if i%3 == 0 or i%5 == 0:
list.append(i)
return list
list = multiple_of_3_and_5_under(1000)
sum = 0
for i in list:
sum += i
print(sum)
파이썬의 while 반복 기능을 활용해봤는데,,,다른 분들 풀이보니 ㅎㅎㅎㅎ
sum = 0
i = 0
while i<1000:
i = i + 1
if (i % 3 == 0) or (i % 5 == 0):
sum += i
else: pass
print(sum)
``````{.python}
a = [i for i in range(1, 1001) if i%3==0]
b = [j for j in range(1, 1001) if j%5==0]
c = sum(set(a+b))
print(c)
def xy():
x = list()
y = list()
for i in range(1,1000):
if i % 3 == 0:
x.append(i)
elif i % 5 == 0:
y.append(i)
a = x + y
a.sort()
c = 0
for i in a:
c = c + i
return print(c)
public class CodingDojang_03 {
public static void main(String[] args) {
int sum = 0;
for(int i = 1; i<1000; i++) {
if(i%3==0||i%5==0) {
sum+=i;
}
}
System.out.println(sum);
}
}
result = 0
for i in range(1, 100):
if i % 3 == 0:
result += i
elif i % 5 == 0:
result += i
print(result)
three = [3*i for i in range(1,334)]
five = [5*i for i in range(1, 200) if i % 3 != 0]
total = three + five
print(sum(total))
# 1000미만 자연수 중 3과 5의 공배수의 합을 구하기
#공배수 구할 리스트
mutuples = list()
#공배수 합을 구할 변수
total = 0
# 1000미만 공배수
for i in range(1001) :
if i % 15 ==0 :
mutuples.append(i)
total += i
print('3과 5의 공배수 :\n {}'.format(mutuples))
print('공배수의 합 : {}'.format(total))
#coding_dojang: Multipels of 3 and 5
def multiples(N, *numbers):
A = set()
result = 0
for n in range(1,N):
for num in numbers:
if n%num == 0:
A.add(n)
sum(A)
print(result)
multiples(1000, 3, 5) #233168
연습
add = 0
i = 0
while i < 1000:
if i%3 == 0 or i%5 == 0:
add = add + i
i = i + 1
else: i = i + 1
print(add)
j=0
for i in range(1000):
if i%3==0 or i%5==0:
j+=i
else:
pass
print(j)
변수를 하나 더 만들어서 숫자를 하나씩 더하는 방법을 사용했습니다 다른 분들 풀이가 정말 인상깊네요..
public static void main(String[] args) {
int sum = 0;
for(int i=1;i<1000;i++) {
if(i%3==0 || i%5==0) {
sum += i;
}
}
System.out.println(sum);
}
# 1 - for문 이용
result = 0
for i in range(3,1000):
if i%3 == 0 or i%5 == 0:
result += i
print(result)
# 2 - list 이용
print(sum([result for result in range(1000) if result%3==0 or result%5==0]))
var inputInt: Int = 1000
func solution(_ num: Int) -> Int {
var result = Int()
for value in (1..<num) {
if (value % 3 == 0) {
result += value
} else if (value % 5 == 0) {
result += value
}
}
return result
}
solution(inputInt)
sum=0
for num in range(1,1000):
if num%3==0: ## 3의 배수 확인
sum=sum+num
elif num%5==0:
sum=sum+num ## 5의 배수 확인
print(sum)
result = 0
for i in range(1000):
if i % 3 == 0:
result += i
elif i % 5 == 0:
result += i
print(result)
class aandb(object): def init(self,v1,v2,v3): self.v1 = v1 self.v2 = v2 self.v3 = v3
def v1andv2(self):
i=0
x=0
while i <self.v3:
if i % self.v1 == 0 or i % self.v2 == 0:
x= x+i
print(i)
i= i+1
i=i+1
print(x)
c = aandb(3,5,1000) c.v1andv2()
multiplier = []
for x in range(1000): if x%3 == 0 or x%5 ==0: multiplier.append(x)
print(sum(multiplier))
package exam;
public class Ex01 {
public static void main(String[] args) {
int result = 0;
for(int i = 1; i < 1000; i++) {
if(i % 3 == 0 || i % 5 == 0) {
result += i;
}
}System.out.println("총합은 : " + result);
}
}
233168
sum = 0
for i in range(1000):
if i % 3 == 0:
sum += i
if i % 5 == 0:
sum += i
if i % 15 == 0:
sum -= i
print(sum)
3과 5의 배수일 때 각각 더해주고, 15의 공배수일 경우 빼 주는 방식으로 교집합을 제거하였습니다. : 233168
tot = 0
for i in range(1000):
if i%3 == 0:
tot += i
elif i%5 == 0:
tot += i
else:
pass
tot
코드 리뷰/조언 부탁드립니다. 감사합니다.
def Euler(num):
mul_3 = []
for idx in range(1, num):
if idx % 3 == 0:
mul_3.append(idx)
else: pass
mul_5 = []
for idx in range(1, num):
if idx % 5 == 0:
mul_5.append(idx)
else: pass
Euler = list(set(mul_3) | set(mul_5))
sum = 0
for idx in Euler:
sum += idx
return sum
Euler(1000)
import java.util.stream.IntStream;
//10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다.
//1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
public class Multiples {
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);
}
import java.util.stream.IntStream;
//10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다. //1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
public class Multiples {
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);
}
test_lists = list(range(1,1000))
result = list()
for list in test_lists:
if list % 3 == 0 or list % 5 ==0:
result.append(list)
print(sum(result))
```{.python} result = 0 add = 0 for i in range(1, 1001): add = add + i if add % 3 == 0 or add % 5 == 0: result = result + add else: continue print(result)
sum = 0
for i in range(1, 1000):
if i % 3 == 0:
sum += i
elif i % 5 == 0:
sum += i
elif i % 3 == 0 and i % 5 == 0:
sum += i
print(sum)
갓 시작한 초보입니다.... ㅎㅎㅎ
sum_3 = 0
sum_5 = 0
for i in range(1000):
if i % 3 == 0:
sum_3 += i
elif i % 5 == 0:
sum_5 += i
else:
pass
sum = sum_3 + sum_5
print(sum)
public class no4 {
public static void main(String[] args) {
int result = 0;
for(int i=1; i<10000; i++){
if( (i%3) == 0 || (i%5) == 0)
result += i;
}
}
}
package projecteuler;
public class problem01 {
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);
}
}
package org.Coding.dojang;
public class Test1 {
public static void main(String[] args) {
int count = 0;
for (int i = 0; i < 1000; i++) {
if (i % 3 == 0) {
count += i;
} else if (i % 5 == 0) {
count += i;
}
}
System.out.println(count);
}
}
num = 0
count = 0
while (count < 1000):
if count % 3 == 0 or count % 5 == 0:
num += count
count += 1
print(num)
<script>
let result=0;
for(let i=1; i<=1000;i++){
if(i%3 == 0 || i%5==0){
result +=i;
}
}
console.log(result);
</script>
A=[]
for i in range(1,1000):
if i%3==0 or i%5==0:
A.append(i)
else:
pass
result = sum(A)
print(result)
import numpy as np
x = 1000 num = 0
for x in range(x+1): if x%3 == 0 or x%5 ==0: num += x
print(num)
//1000미만의 자연수에서 3, 5 배수의 총합을 구하라
package test1;
public class test1 {
public static void main(String[] args) {
int a = 0;
for (int i = 1; i < 100; i++) {
if (i % 3 == 0 || i % 5 == 0) {
a += i;
}
}
System.out.println(a);
}
}
answer_list = []
for x in range(1,1000) :
if x % 3 == 0 :
answer_list.append(x)
elif x % 5 == 0 :
answer_list.append(x)
else :
pass
print("정답 : ", sum(answer_list))
정답 : 233168
th = []
for a in range(1,334):
a_f = 3*a
th.append(a_f)
fv = []
for b in range(1,200):
b_f = 5*b
fv.append(b_f)
union = list(set(th) | set(fv))
sum(union)
void main() { int sum = 0; for (int i = 0; i < 1000; i++) { sum += (i % 3 == 0 || i % 5 == 0) ? i : 0; } cout << sum; }
//233168
public static void main(String[] args) {
int sum = 0;
for(int i = 1; i < 1000; i++) {
if(i%3==0 || i%5==0)
sum += i;
}
System.out.println(sum);
}
int sum =0;
for(int i=0; i<1000;i++) {
if(i%3 == 0 || i%5 == 0) {
sum += i;
}
}System.out.println("3,5배수의 총합은: "+sum);
public static void main(String[] args) {
int result = 0;
for(int i=0;i < 1000;i++) {
if(i%3==0 || i%5==0) {
result += i;
}
}
System.out.println(result);
}
a = list(range(1,1000))
b = []
for i in a:
if i % 3 == 0 :
b.append(i)
elif i % 5 == 0 :
b.append(i)
print(sum(b))
total=0
for i in range(1, 31):
if i%3==0 or i%5==0:
if i%15==0:
total-=i
total+=i
print(total)
맞게 했을까요?
def sum_n(number) :
a=0
for i in range(number, 1001, number):
a = a+i
return a
k = sum_n(3) +sum_n(5) - sum_n(15)
print(k)
역쉬 고수분들이 많군요..코린이 많이 배우고 갑니다~
multiple = [i for i in range(1, 1000) if i % 3 == 0 or i % 5 == 0]
total = sum(multiple)
print(total)
def Multiples3and5(n):
sum = 0
for i in range(1, n):
if i % 3 == 0 or i % 5 ==0:
sum += i
return sum
print(Multiples3and5(1000))
public static void main(String[] args){
int j=0;
for (int i = 1; i<1000; i++){
if (i%3==0 || i%5==0){
j = j+i;
}
}
System.out.print(j);
}
v = []
s = 0
for i in range(1, 1000):
if i%3 == 0:
if i in v: pass
else:
v.append(i)
s = s+i
if i%5 == 0:
if i in v: pass
else:
v.append(i)
s = s+i
print(s)
[python] 저랑 비슷한 답이 있겠죠?... 연습이니까요...
s=0
for i in range(1,1000):
if i%3==0 or i%5==0:
s+=i
print(s)
[python] 가만히 생각해보니 제가 엄청 어렵게 풀었네요; 내가 왜 저런짓을..ㄷㄷ 분명 더 쉬운방법이 있겠죠?...
x = int(input("원하는 자연수를 입력하세요."))
a = list()
for i in range(x):
if i%3 == 0 or i%5 == 0:
a.append(i)
print("%d미만의 자연수 중 3, 5의 배수의 총 합은 " % x + "%d입니다." % sum(a))
원하는 자연수를 입력하면 3, 5 배수의 총 합을 출력해보았습니다.
def solution(n):
sum = 0
for i in range(1, n):
if i % 3 == 0 or i % 5 == 0:
sum += i
print(solution(1000))
result = 0
for i in range(1,1000):
if i % 3 ==0 and i % 5 ==0:
result += i
elif i % 3 ==0:
result += i
elif i % 5 ==0:
result += i
print(result)
a = list(range(1,1000)) b = []
for i in a: if i % 3 == 0 : b.append(i) elif i % 5 == 0 : b.append(i)
print(sum(b))
A3, A5 = set([]), set([])
i = 1
while i < 1000:
if i % 3 == 0:
A3.add(i)
elif i % 5 ==0:
A5.add(i)
i += 1
list = A3 | A5
i = 0
for a in list:
i += a
print(i)
# 1000미만의 자연수에서 3과 5의 배수의 총합을 구하는 프로그렘을 만들어라.
number = list(range(1000))
plus = 0
for i in number:
if i % 3 == 0 or i % 5 == 0:
plus += i
print(plus)
#처음 실수
#1000미만의 자연수라는 조건을 1000이하의 자연수로 보고 1000도 포함시켰음.
#그 결과 5의 배수인 1000도 최종숫자에 합산되어 234168이 나옴ㅠㅠ
#수정한 결과
#233168
multiful3or5 = []
for i in range(1000):
if i%3 == 0 or i%5==0:
multiful3or5.append(i)
print(sum(multiful3or5))
result = []
R_sum = 0
for i in range(1000):
if i % 3 == 0 or i % 5 == 0:
result.append(i)
R_sum += i
print(result)
print(R_sum)
package project;
public class Main {
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);
}
}
java 이용했습니다.
public static void main(String[] args) {
//10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다.
//1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
int a = 0;
int b = 0;
for(int i = 0; i < 1000; i++) {
if(i % 3 == 0) {
a = i + a;
System.out.println(i);
}
if(i % 5 == 0) {
a = i + a;
System.out.println(i);
}
}
System.out.println(a);
}
package codingdojang;
import java.util.Scanner;
public class Exam_01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n1;
int sum =0;
System.out.print("n1 :");
n1 = sc.nextInt();
for(int i =1; i <= n1; i++){
if(i%3 == 0 || i%5 == 0) {
sum += i;
}
}
System.out.println(sum);
}
}
public class Multiple{
public static void main(String[] args){
int sum = 0;
for(int i=0;i<1000;i++){
if(i%3==0 && i%5==0){
sum=sum+i;
}
}
System.out.println(sum);
}
}
public class Ex01 {
public static void main(String[] args) {
multiple(1000);
}
static void multiple(int n) {
int sum = 0;
for(int i=3;i<n;i++) {
if(i%3==0 || i%5==0) sum += i;
}
System.out.print(sum);
}
}
반복문과 조건문을 이용한 출력
public static void main(String[] args) {
int sum1 = 0, sum2 = 0;
for (int i = 0; i < 1000; i++) {
if (i % 3 == 0) {
sum1 += i;
} else if (i % 5 == 0) {
sum2 += i;
}
System.out.println(sum1 + sum2);
}
}
num_list = [3,5]
for num in range(2, 334):
a = 3 * num
num_list.append(a)
for num in range(2, 200):
a = 5 * num
num_list.append(a)
num_list = set(num_list)
a = sum(num_list)
print(a)
x3 = [i for i in range(1000) if i%3 ==0]
x5 = [i for i in range(1000) if i%5 ==0]
x15 = [i for i in range(1000) if i%15 ==0]
print(sum(x3)+sum(x5)-sum(x15))
class Euler {
public static void main(String [] args)
{
int sum=0;
for(int i=1; i<1000; i++)
{
if(i%3 ==0)
{
sum=sum+i;
}
else if(i%5 ==0)
{
sum=sum+i;
}
else if(i%3==0 && i%5==0)
{
sum=sum-i;
}
}
System.out.println(sum);
}
}
public class Test01 { 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=0
for i in range(1,10):
if i%3==0:
sum=sum+i;
if i%3==0 and i%5==0:
continue;
if i%5==0:
sum=sum+i;
print(sum);
sum = 0
for number in range(1,1000): if number % 3 == 0 or number %5 == 0: sum = sum + number print(sum)
total_sum = 0
for i in range(1,1000):
if (i % 3 == 0) or (i % 5 == 0):
total_sum += i
print(total_sum)
public class MyFirstClass { public static void main(String[] args) { int num = 0; for(int i=1;i<=1000;i++) { if(i%3==0) { num += i; } if(i%5==0) { if(!(i%15==0)) { num +=i; } } } System.out.println(num); } }
def solution(num1, num2):
result = 0
for num in range(1, 1000):
if num % num1 == 0 or num % num2 == 0:
result += num
return result
print('Result: ', solution(3, 5))
int sum = 0;
for(int i=1;i<1000;i++) {
if(i%3==0 || i%5==0) {
sum = sum+i;
}else if(i%15==0) {
sum = sum-i;
}
}
System.out.println(sum);
const total = Array.from({ length: 1000 }, (v, i) => i)
.filter((i) => i % 3 === 0 || i % 5 === 0)
.reduce((pre, cur) => pre + cur, 0);
console.log(total); // 233168
a=[]
for i in range(1,1000):
if i%3 == 0:
a.append(i)
elif i%5 ==0:
a.append(i)
b= sum(a)
print(b)
파이썬
LST = []
for N in range(1,1000) :
if N % 3 == 0 or N % 5 == 0 :
LST.append(N)
result = 0
while LST :
result += LST.pop()
print(result)
#include <iostream>
using namespace std;
int main() {
int sumofThree = 0, sumofFive = 0, sumofFifteen = 0;
int numThree = 0, numFive = 0, numFifteen = 0;
int totalSum = 0;
// 3의 배수의 합 : n(n+1)/2 * 3
numThree = static_cast<int>(999 / 3); //floor division, since BELOW 1000
sumofThree = (numThree * (numThree + 1) / 2) * 3;
// 5의 배수의 합
numFive = static_cast<int>(999 / 5); //floor division, since BELOW 1000
sumofFive = (numFive * (numFive + 1) / 2) * 5;
// 15의 배수의 합
numFifteen = static_cast<int>(999 / 15); //floor division, since BELOW 1000
sumofFifteen = (numFifteen * (numFifteen + 1) / 2) * 15;
totalSum = sumofThree + sumofFive - sumofFifteen;
cout << totalSum;
}
// Rust : 코드삽입 언어에 없네요ㅜㅜ
fn main() { let n = 1000;
let iter = (1..n).filter(|&i| i % 3 == 0 || i % 5 == 0);
let sum: u32 = iter.sum();
println!("{}", sum);
//To see each member of 'iter',
//let vec: Vec<u32> = iter.take(10).collect();
//println!("{:?}", vec);
}
package fortest;
public class ChooseThird {
public static void main(String[] args) {
int sum=0;
for(int i=1;i<1000;i++)
{
if(i%3==0||i%5==0)
sum+=i;
}
System.out.println(sum);
}
}
total = 0
for counter in range(1000):
if counter%3 == 0 or counter%5 ==0:
total += counter
print(total)
def multiple(x):
result=[i for i in range(1,1000) if i%x==0]
return result
mul3=(multiple(3))
mul5=(multiple(5))
mul=list(set(mul3)|set(mul5))
sum=0
for i in mul:
sum+=i
print(sum)
public class Main {
public static void main(String[] args) {
int result = 0;
for(int i =1;i<=1000;i++) {
if(i%3==0&&i%5==0) {
result += i;
}
}
System.out.println(result);
}
}
def sum_3_5():
multiple_of_3 = [ num1 for num1 in range(1000) if num1 % 3 == 0 ]
multiple_of_5 = [ num2 for num2 in range(1000) if num2 % 5 == 0 ]
multiple_of_15 = [ num3 for num3 in range(1000) if num3 % 15 == 0 ]
return sum(multiple_of_3) + sum(multiple_of_5) - sum(multiple_of_15)
public class BasuTotal {
public static void main(String[] args) {
int total = 0;
for(int i = 0; i < 1000; i++) {
if(i%3==0 || i%5==0) {
total += i;
}
}
System.out.println("1000미만의 자연수 중 3, 5의 배수의 총 합은 : " + total);
}
}
public class Main {
public static void main(String[] args) {
int n = 0;
int sum = 0;
for(int i = 1; i < 1000; i++) {
if(i % 3 == 0 || i % 5 == 0) {
sum += i;
}
}
System.out.println(sum);
}
}
# Find the sum of all the multiples of 3 or 5 below 1000.
sum = 0
for i in range(1000):
if i % 3 == 0 or i % 5 == 0:
sum += i
return sum
package org.javaturotials.ex;
import java.util.*;
public class test {
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);
}
}
int i,sum;
sum = 0;
for(i=1;i<1000;i++){
if((i%3==0||i%5==0)) { // 3의 배수의 값을 더하는 메서드
sum+=i;
// System.out.print(i+"\t"); 확인 코드
// if 함수 두개로 진행했을 때 숫자 중복발생 ex)30,60 등등
}
}
System.out.println("3과 5의 총 합은 "+(sum)+"이다.");
}
}
package jjs;
public class HelloWorld {
public static void main(String[] args) {
int sum=0;
int i;
for(i=1;i<1000;i++) {
if(i%3==0 || i%5==0)
{
sum=sum+i;
}
}
System.out.println(sum);
}
}
result = 0
num = 0
while num < 1000:
if num %3 == 0 or num %5 == 0:
result += num
num+=1
print(result)
nums = range(1,1000)
threes = list(filter(lambda args: args % 3 == 0, nums))
fives = list(filter(lambda args: args % 5 == 0, nums))
group = set(threes + fives)
print(sum(group))
#include <iostream>
#include <vector>
int main() {
int sum = 0;
for (int i = 3; i < 1000; i += 3) {
sum += i;
}
for (int i = 5; i < 1000; i += 5) {
sum += i;
}
for (int i = 15; i < 1000; i += 15) {
sum -= i;
}
std::cout << sum;
}
public static void main(String[] args) {
int sum = 0; // 배수의 합을 저장하는 변수 생성
for(int i = 1; i <1000; i++)
{
if(i % 3 == 0 || i % 5 ==0) {
sum += i; // i의 값을 sum에 저장
}
}
System.out.println("1000미만의 자연수에서 3, 5 배수의 합은 : " + sum);
}
java for문을 사용하여 작성하였습니다.
using System;
public class Program
{
public static void Main(String[] args)
{
int sum = 0;
for(int i=1; i<1000; i++){
if (i%3==0 || i%5==0)
sum += i;
}
Console.WriteLine(sum);
}
}
C#
public class MultiplesOf3And5 {
public static void main(String[] args) {
int a;
int i = 0;
for(a = 1; a < 1000; a++) {
if((a % 3 ) == 0) {
i += a;
// System.out.println(a);
}
else if ((a % 5) == 0) {
i += a;
// System.out.println(a);
}
}
System.out.println(i);
}
}
n = 0
result = 0
for n in range(1000):
if n%3 == 0:
result += n
if n%5 == 0:
result += n
if n%15 == 0:
result -= n
n = n+1
print(result)
print(n)
baseVar = range(100)
x35 = []
for _num in baseVar: if _num % 3 == 0: x35.append(_num) elif _num % 5 == 0: x35.append(num)
sumVar = [] for _num in x35: sumVar += _num
lst = []
array = []
for i in range(0, 1001):
if i % 3 == 0 or i % 5 == 0:
if i not in array:
array.append(i)
print(sum(array))
# Multiples of 3 and 5
# 세 개의 값 입력받기
number1 = int(input('첫 번째 숫자를 입력해 주세요: '))
number2 = int(input('두 번째 숫자를 입력해 주세요: '))
number3 = int(input('범위를 입력해 주세요: '))
# 빈 집합 생성 공배수 제외하기 위함
Multiples = set()
# 나누어 떨어질 때 출력
for x in range(1, number3):
if x % number1 == 0:
Multiples.add(x)
for y in range(1, number3):
if y % number2 == 0:
Multiples.add(y)
#print(Multiples)
print(sum(Multiples))
취지에 맞는 프로그램을 만들었음
자바스크립트입니다.
var count = [];
var sum = 0;
for (i=1; i<1000; i++){
if (i%3==0 || i%5==0){
count.push(i);
sum += i;
}
}
document.write(sum);
result_num = [] m=3 n=5 o=1000 i=1
while mi <o: result_num.append(mi) i += 1
i=1
while ni <o: result_num.append(ni) i += 1
print(sum(set(result_num)))
결과: 233168
많이 배웁니다. 감사합니다.
# -*- coding: utf-8 -*-
N = [i for i in range(1,1000) if i%3==0 or i%5==0]
print("3또는 5의 배수인 1000미만의 자연수들의 합은 %d입니다." %sum(N))
sum = 0
for i in range(1, 1000):
if i % 3 == 0 or i % 5 == 0:
sum += i
print("1000미만의 자연수에서 3, 5의 배수의 총합 = %d" % sum)
너무 정석대로? 푼것같네요
# 10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다.
# 1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
limit = 1000
sum_3_5 = 0
for i in range(1, limit):
if i % 3 == 0:
sum_3_5 += i
elif i % 5 == 0:
sum_3_5 += i
else:
pass
print(sum_3_5)
public class Main {
public static void main(String[] args) {
int result=0;
for (int i = 0; i < 1000; i++) {
if(i%3==0 || i%5==0) result += i;
}
System.out.println("결과값은 :" + result);
}
}
프로그램 공부 시작한지 4개월차.. 현재 배우고 있는 자바로 하나씩 풀어나가보겠습니다
n3=n5=n15=0
for j in range(1, 1000):
if j%3==0:
n3+=j
if j%5==0:
n5+=j
if j%15==0:
n15+=j
print(n3+n5-n15)
파이썬으로 처음 풀어본 문제. set의 합집합을 이용해 만들었습니다.
class SumMult:
def mult_set(self, first, second, limt):
self.first_set = set([])
self.second_set = set([])
for i in range(0,limt):
if first*i>=limt:
break
self.first_set.add(first*i)
for i in range(0,limt):
if second*i>=limt:
break
self.second_set.add(second*i)
return self.sum_set
a = SumMult()
print(sum(a.mult_set(3,5,1000)))
num_list = []
for i in range(1,1000): if i % 3 == 0 or i % 5 == 0: num_list.append(i)
sum = 0
for i in range(len(num_list)): sum += num_list[i]
print(sum)
int sum = 0;
for(int i=1 ; i<1000 ; i++) {
if (i % 3 == 0 || i % 5 == 0) {
sum += i;
}
}
System.out.println("1000 미만 3과 5의 배수의 합계는: " + sum + "이다.");
result = []
for i in range(1, 100):
if i % 3 == 0 or i % 5 == 0:
result.append(i)
print(sum(result))
num = 1000
result = 0
for i in range(num):
if(i%3 == 0):
result += i
elif (i%5 == 0):
result += i
print(result)
a=[] b=0 for i in range(1001): if i%3==0: a.append(i) elif i%5==0: a.append(i) for x in range(len(a)): b=b+a[x] print(b)
#include <stdio.h>
int main(void)
{
int x, y, tsum, fsum, result;
x = 1;
y = 1;
tsum = 0;
fsum = 0;
result = 0;
while (x != 100)
{
if (x % 3 == 0)
tsum += x;
x++;
}
while (y != 100)
{
if (y % 5 == 0)
fsum += y;
y++;
}
result = tsum + fsum;
printf("100미만 3 과 5의 배수의 합은:%d",result);
}
public class Ex01 {
public static void main(String[] args) {
int result = 0;
for(int i = 0; i<1000; i++) {
if(i%3==0 || i%5==0){
result +=i;
}
}
System.out.println(result);
}
}
package com.algorithm.algorithmpractice.dojang;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class projectOiler {
public static void main(String[] args) {
Set<Integer> multiples = new HashSet<>();
for(int i = 1; i <= 1000; i+=1){
if(i%3 == 0 || i%5 == 0){
multiples.add(i);
}
}
Iterator<Integer> iter = multiples.iterator();
Integer i = 0;
while (iter.hasNext()){
i += iter.next();
}
System.out.println(i);
}
}
my_list = [] for i in range(1, 1000): if i % 3 == 0 or i % 5 == 0: my_list.append(i)
print(sum(my_list))
set3 = set(range(3,1000,3)) set5 = set(range(5,1000,5)) print(sum(set3|set5))```{.python}
```
//1000 미만의 자연수에서 3, 5의 배수의 총합을 구하시오.
int sumOfMultiples = 0;
for(int i=0; i<1000; i++) {
if (i%3==0 || i%5==0) {
sumOfMultiples += i;
}
}
System.out.println(sumOfMultiples);
Multiples_set = set()
for i in range(1,1000):
if i%3==0 or i%5==0:
Multiples_set.add(i)
sum(Multiples_set)
public class 코01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int i = 1;
int sum = 0;
while (i < 999) {
i++;
if (i % 3 == 0 || i % 5 == 0) {
System.out.println(i);
sum += i;
}
}
System.out.println(sum);
}
}
print("="*50)
print("Multiples of 3 and 5")
print("="*50)
sum = 0
for i in range (1000) :
if i % 3 == 0 or i % 5 == 0 :
sum += i
else :
print("%d is not a multiples of 3 and 5" % i)
print("%d is multiples of 3 and 5 from 0 to 1000" % sum)
1000미만의 숫자는 > 1~999까지의 i를 연산 합니다. > 코드 : for i in range (1000) : 3과 5의 배수는 > 3 또는 5로 나눈 나머지가 0인 경우에 해당합니다. > 코드 : if i % 3 == 0 or i % 5 == 0 : 두 조건에 해당하는 숫자의 합은 > 앞의 두 코드의 중복 조건에서의 i 값을 누적해서 더하는 것 입니다. > 코드 : sum += i
마지막 문구는 sum 값을 print 한 것 입니다. > 코드 : print("%d is multiples of 3 and 5 from 0 to 1000" % sum)
{.python} sum = 0 for i in range(1000): if i % 5 == 0: sum = sum + i elif i % 3 == 0: sum = sum + i print(sum)
#10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다.
#1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
a = int(input("1000미만의 자연수를 입력하세요 : "))
b = 0
for i in range(1, a):
if i % 3 == 0 or i % 5 == 0:
b += i
print(b)
sum = 0
for i in range(1000):
if i % 3 == 0 or i % 5 == 0:
sum = sum + i
print(sum)
제가 너무 무난하게 푼 거 같아요. 고수님들 코드 보며 배우겠습니다.
int sum = 0;
int i;
for ( i = 1; i < 1000; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
sum += i;
}
}
printf("%d\n", sum);
public static void main(String[] args) {
// *문제*
// 10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다.
// 1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
int sum = 0;
for (int i = 1; i < 1000; i++) {
if (i %3 == 0 || i %5 == 0) {
sum += i;
} // if
} // for_i
System.out.println("1000미만의 자연수에서 3, 5의 배수의 합 : " + sum);
} // main
import time
result=[]
last_time = time.time()
for i in range(1000):
if i % 3 == 0 or i % 5 == 0:
result.append(i)
print('time ' + str(time.time() - last_time), ' found ' + str(len(result)), ', sum ' + str(sum(result)))
public class multiples_of_3and5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int hap = 0;
for(int i=0;i<1000;i++) {
if(i%3 == 0 || i%5 ==0) {
hap += i;
}
}
System.out.printf("3의 배수와 5의 배수의 합은 %d이다", hap);
}
}
using namespace std;
int main() { int three=0; int five=0; int sum=0;
for (int i=1;i<1000;i++) { if(i%3==0) sum+=i; else if (i%5==0) sum +=i; } cout << sum; }
자바로 작성했습니다.
public class Main {
public static void main(String[] args) {
int sum = 0;
for (int i=1; i<1000; i++) {
if((i%3==0)||(i%5==0)) {
sum += i;
}
}
System.out.printf("1000미만의 자연수에서 3,5의 배수의 총합은 %d 입니다.\n", sum);
}
}
sum_list = []
for i in range(1, 1000):
if i % 3 == 0:
if i % 5 == 0:
continue
else:
sum_list.append(i)
for i in range(1, 1000):
if i % 5 == 0:
if i % 3 == 0:
continue
else:
sum_list.append(i)
for i in range(1, 1000):
if i % 3 == 0 and i % 5 == 0:
sum_list.append(i)
print(sum(sum_list))
import numpy as np
a3 =[]
for i in range(1000-1):
a = i+1
if a %3 ==0 or a %5 ==0:
a3.append(a)
print(sum(a3))
#include <time.h>
#include <stdio.h>
#define N 10000
int main(void){
int number , i , sum;
int a[N];
printf("값 : ");
scanf("%d", &number);
for(i = 1; i < number; i++ ){
if(i % 3 == 0 || i % 5 == 0){
sum = sum + i;
}
}
printf("%d \n", sum);
return 0 ;
}
#include <stdio.h>
int main()
{
int sum=0;
for (int i=1; i<1000; i++) {
if (i%3 == 0 || i%5 == 0) sum += i;
}
printf("%d",sum);
}
---- JAVA ----
public class MultiplesOf3And5
{
public static void main(String[] args)
{
int sum = 0;
for(int i = 1; i <= 1000; i++)
{
if(i % 3 != 0 || i % 5 != 0)
{
continue;
}
else
{
sum = sum + i;
}
}
System.out.println(sum);
}
}
result = 0
for vc in range(1,1001):
if vc % 3 == 0 or vc % 5 == 0:
result += vc
print(result)
또는
print(sum([h for h in range(1, 1001) if h % 3 == 0 or h % 5 == 0]))
alist = []
for ii in range(1, 1000):
if ii % 3 == 0 or ii % 5 == 0:
alist.append(ii)
num = 0
for ik in alist:
num += ik
print(num)
sum=0 for i in range(1,1000): if i%3==0: sum+=i if i%5==0: sum=sum+i if i%5==0 and i%3==0: sum-=i
print() print(sum)```{.python}
```
public class a {
static int x;
static int y;
static int z;
static int sumy;
static int totaly;
static int sumx;
static int totalx;
static int sumz;
static int totalz;
public static void main(String[] args) {
for(y=0;y<1000;y=y+3) {
sumy = y+sumy ;
totaly = sumy;
};
for(x=0;x<1000;x=x+5) {
sumx = x+sumx ;
totalx = sumx;
};
for(z=0;z<1000;z=z+15) {
sumz = z+sumz ;
totalz = sumz;
};
System.out.println(totaly+totalx-totalz);
};
};
코딩입문 2주차 올려봅니다
public class Lv1_350 {
// 10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다.
// 1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
public static void main(String[] args) {
int num1 = 0;
int num2 = 0;
int res = 0;
// 1000미만의 3의 배수의 합 구하기
for (int i = 3 ; i < 1000; i += 3) {
num1 += i;
}
// 1000미만의 5의 배수의 합 구하기
for (int i = 5 ; i < 1000; i += 5) {
num2 += i;
}
// 두 배수의 합 구하기
res = num1 + num2;
System.out.println(res);
}
}
단순하게 생각했습니다
number = 1000
n_list = list(range(number))
point = []
for x in n_list:
if x%3 == 0:
point.append(x)
elif x%5 == 0:
point.append(x)
sum = sum(point)
print(sum)
num=int(input("정수를 입력하세요.:"))
if num>=0:
pass
else:
num=int(input("정수를 입력하세요.:"))
result=0
for n in range(0,num):
if n%3==0 or n%5==0:
result += n
print(result)
#include <stdio.h>
#define MAX_NUMBER_SIZE 1000
int main()
{
int i_count = 0;
for (int i = 0; i < MAX_NUMBER_SIZE; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
i_count = i_count + i;
}
}
printf("%d\n", i_count);
return 0;
}
a = 0 for i in range(1,1000): if i % 3 == 0: a += i elif i % 5 == 0: a += i print(a)```{.python}
```
total_sum = 0
for num in range(100):
if num % 3 == 0 or num % 5 == 0:
total_sum += num
print(total_sum)
#include<stdio.h>
int main(void)
{
int i, sum = 0;
for (i = 1; i < 1000; i++)
{
if ((i % 3 == 0) || (i % 5 == 0)) sum += i;
}
printf("%d", sum);
}
const func = n => Array(n-2).fill(2).map((v,i)=>v+i).filter(v=>v%3===0||v%5===0).reduce((a,v)=>a+v,0);
public class NumMulti {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i < 18; i++) {
if (i % 3 == 0 || i % 5 == 0) {
sum += i;
}
}
System.out.println("배수의 총합 : " + sum);
}
}
``````{.python}
answer = 0
for i in range(1, 1000):
if i % 3 == 0 or i % 5 == 0:
answer += i
print(answer)
자바로 작성하였습니다.
public class main {
public static void main(String[] args) {
int num3 = 0;
int n3 = 0;
int n5 = 0;
int n15 = 0;
int num5 = 0;
int num15 = 0;
for (int i = 0; n3 < 999; i++) {
n3 = i * 3;
num3 = num3 + n3;
}
System.out.println("------------------");
for (int i = 0; n5 < 995; i++) {
n5 = i * 5;
num5 = num5 + n5;
}
for (int i = 0; n15 < 990; i++) {
n15 = i * 15;
num15 = num15 + n15;
}
System.out.println(num3 + num5 - num15);
}
}
# 10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다.
# 1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
sum = 0
for i in range(1, 1000):
if i % 3 == 0 and i % 5 == 0:
sum += i
print(sum)
result=0 # global 변수 선언. for문 안에서 선언되면, for문이 도는 동안 계속해서 reset됨.
for i in range(1,1000):
if 1%3==0 or i%5==0:
result=result+i
print(result)
// num1 = 3, num2 = 5, limit = 1000
public int solution(int num1, int num2, int limit) {
// 등차가 3인 수열의 합 + 등차가 5인 수열의 합 - 등차가 3과 5의 최소공배수인 수열의 합
return this.calc(num1, limit) + this.calc(num2, limit) - this.calc(num1 * num2, limit);
}
// ==== private ====
private int calc(int num, int limit) {
// 등차수열의 전체 갯수 구하기
int count = (limit % num == 0) ? limit / num - 1 : limit / num;
// 등차수열의 합 구하기
return (count * ((2 * num) + --count * num)) / 2;
}
public class MultipleTest {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0) {
sum += i;
}
}
System.out.println(sum);
}
}
def sumMul(num, count):
return int(num*count*(count+1)/2)
def multiplesOf3and5(num):
mul3=sumMul(3,num//3)
mul5=sumMul(5,num//5)
mul15=sumMul(15,num//15)
return mul3+mul5-mul15
num=int(input('숫자를 입력하세요. >> '))
print(multiplesOf3and5(num-1))
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i < 1000; i++) {
if ((i % 3 == 0) || (i % 5 == 0)) {
sum += i;
}
}
System.out.println(sum);
}
a = []
b = []
c = []
for i in range(1,1001):
if i % 3 == 0 and i % 5 == 0:
c.append(i)
elif i % 3 == 0 and not i % 5 == 0:
a.append(i)
elif i % 5 == 0 and not i % 3 == 0:
b.append(i)
else: pass
sum_a = 0
sum_b = 0
sum_c = 0
for i in a:
sum_a = sum_a + i
for i in b:
sum_b = sum_b + i
for i in c:
sum_c = sum_c + i
print(sum_a+sum_b+sum_c)
list_3_5 = []
for i in range(1,1000):
if 3 * i not in list_3_5 and 3 * i < 1000:
list_3_5.append(3 * i)
if 5 * i not in list_3_5 and 5 * i < 1000:
list_3_5.append(5 * i)
print(sum(list_3_5))
result = []
for i in range(1,1000):
if int(i)%3 == 0 or int(i)%5 == 0:
result.append(i)
sum = 0
for ii in result:
sum += int(ii)
print(sum)
public class Multiples_of_3_and_5 {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i < 1000; i++)
{
if (i%3 == 0 && i%5 == 0)
{
sum += i;
}
}
System.out.println(sum);
// int sum = 0;
//
// for (int i = 1; i < 10; i++)
// {
// if (i%3 == 0 || i%5 == 0)
// {
// sum += i;
// }
// }
// System.out.println(sum);
}
}
public class Multiples {
public static void main(String[] args) {
int i; // i 변수 선언
int sum = 0; // 배수의 합계 계산을 위한 변수 선언 및 초기화
for (i = 1; i < 1000; i++) { // 1000 미만의 자연수까지 반복하는 for문
if (i % 3 == 0 || i % 5 == 0) { // 3의 배수(3의 나머지가 0) 또는 5의 배수(나머지가 0)일 경우
sum += i; // sum 변수에 i 값 플러스
}
}
System.out.println("3의 배수와 5의 배수의 총합: " + sum); // 결과 => sum : 233168
}
}
코딩 배워가는 중인데 재밌네요
int sum = 0; for(int i =0;i<1000;i++) { if(i%3==0||i%5==0) { sum+=i; } }
System.out.println(sum);
java기초로 만들었습니다.
package test; import java.util.Scanner;
public class testt {
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
System.out.print("숫자를 입력하세요: ");
int n = stdIn.nextInt();
int i = 1;
int p = 1;
int count = 0;
int count2 = 0;
int result =0;
while(n != 0) {
System.out.println( i * 3);
if((i * 3) >= n) {
break;
}
else {
count = count + (i*3);
i++;
}
}
while(n != 0) {
System.out.println( p * 5);
if((p * 5) >= n) {
break;
}
else {
count2 = count2 + (p*5);
p++;
}
}
result = count + count2;
System.out.println(n + "이하중 3과 5의 배수를 더한 값은 " + result + "입니다.");
} }
public static void main(String[] args) { Scanner stdIn = new Scanner(System.in); System.out.print("숫자를 입력하세요: "); int n = stdIn.nextInt(); int i = 1; int p = 1; int count = 0; int count2 = 0; int result =0; while(n != 0) {
System.out.println( i * 3);
if((i * 3) >= n) {
break;
}
else {
count = count + (i*3);
i++;
}
} while(n != 0) { System.out.println( p * 5); if((p * 5) >= n) { break; } else { count2 = count2 + (p*5); p++; }
}
result = count + count2;
System.out.println(n + "이하중 3과 5의 배수를 더한 값은 " + result + "입니다.");
public class Main {
public static void main(String[] args) {
// 3,5 각각 배수의 갯수를 알아야 해
int FirstNumberOfThree = 3;
int FirstNumberOfFive = 5;
int LastNumberOfThree = 0;
int LastNumberOfFive = 0;
int CountOfThree = 0;
int CountOfFive = 0;
int i = 0;
for ( i = 1; LastNumberOfThree < 1000; i++) {
LastNumberOfThree = i * FirstNumberOfThree;
CountOfThree++;
}
for ( i = 1; LastNumberOfFive < 1000; i++) {
LastNumberOfFive = i * FirstNumberOfFive;
CountOfFive++;
}
// int 배열에 3,5의 배수 집어 넣기
int[] ArrOfThree = new int[CountOfThree];
int[] ArrOfFive = new int[CountOfFive];
int j = 1;
for (i = 0; i < CountOfThree; i++) {
ArrOfThree[i] = j * FirstNumberOfThree;
j++;
}
j = 1;
for (i = 0; i < CountOfFive; i++) {
ArrOfFive[i] = j * FirstNumberOfFive;
j++;
}
//총합 더하기
int SumOfThree = 0;
int SumOfFive = 0;
for (i = 0; i < CountOfThree; i++) {
SumOfThree = SumOfThree + ArrOfThree[i];
}
System.out.println("3의 배수의 합은 " + SumOfThree);
for (i = 0; i < CountOfFive; i++) {
SumOfFive = SumOfFive + ArrOfFive[i];
}
System.out.println("5의 배수의 합은 " + SumOfFive);
int Total = SumOfThree + SumOfFive;
System.out.println("1000미만의 3과 5의 배수의 합은 " + Total);
}
}
#include <stdio.h>
#define MUL_5 5
#define MUL_3 3
int main(int argc, char* argv)
{
int mul_3_total = 0;
int mul_5_total = 0;
int i = 0;
int cnt_3 = 0;
int cnt_5 = 0;
for (i = 1; i < 1000; i++)
{
if ((i % MUL_5) == 0)
{
mul_5_total += i;
printf("[%04d] %d multiple val = %d acc total = %d \r\n", cnt_5++, MUL_5, i, mul_5_total);
}
if ((i % MUL_3) == 0)
{
mul_3_total += i;
printf("[%04d] %d multiple val = %d acc total = %d \r\n", cnt_3++, MUL_3, i, mul_3_total);
}
}
printf("[Total value] acc multiple 3 = %d acc multiple 5 = %d total = %d \r\n", mul_3_total, mul_5_total,(mul_3_total + mul_5_total) );
return 0;
}
다음과 같이 한번 해봤습니다.
a = range(3, 1000, 3)
b = range(5, 1000, 5)
c = range(15, 1000, 15)
print(sum(a)+sum(b) - sum(c))
public class Multiples_of_3_and_5 {
public static void main(String[] args) {
int thousand = 1000, sum = 0;
for (int i = 1; i < 1000; i++) {
if ((i % 3 == 0) || (i % 5 == 0)){
sum += i;
}
}
System.out.print(sum);
}
}
public static void main(String[] args) {
int num = 1; // 초기값
int end = 1000; //끝자리
int sum = 0; //초기값
for(num = 1, sum = 0; num < end; num++) { // 조건이 참이면 숫자를 1 증가시키는 반복
if(num % 3 == 0 || num % 5 ==0) { // 반복문 내 조건문: 숫자가 3이나 5로 나눠지면 참
sum += num; // 조건이 참이면 더한다.
}
}
System.out.println(sum);
}
출력값 : 233168
Rust로 코딩해봤습니다.
fn main() {
let i = 3;
let j = 5;
let x = sum_of_all_the_multiples(&i, &j);
println!("The sum of all the multiples of {} or {} below 1000 is {}", i, j, x);
}
fn sum_of_all_the_multiples<'i, 'j>(ii: &'i i64, jj: &'j i64) -> i64 {
let mut ii_sum = 0;
let mut ii_cnt = 1;
let mut jj_sum = 0;
let mut jj_cnt = 1;
let ij = (*ii) * (*jj);
let mut ij_sum = 0;
let mut ij_cnt = 1;
while (*ii * ii_cnt) < 1000 {
ii_sum += *ii * ii_cnt;
ii_cnt += 1;
}
while (*jj * jj_cnt) < 1000 {
jj_sum += *jj * jj_cnt;
jj_cnt += 1;
}
while (ij * ij_cnt) < 1000 {
ij_sum += ij * ij_cnt;
ij_cnt += 1;
}
ii_sum + jj_sum - ij_sum
}
public class multiplesOf3And5 {
public static void main(String[] args) {
int sum = 0;
for(int i=1;i<1000;i++) {
if(i%3==0 || i%5==0)
sum = sum + i;
}
System.out.printf("1000미만의 자연수에서 3,5의 배수의 총 합은 = %d",sum);
}
}
pro_3 = 0
pro_5 = 0
pro_15 = 0
x = 3
y = 5
z = 15
i1 = i2 = i3 = 0
while (i1*x)<1000:
pro_3 += i1*x
i1 += 1
while (i2*y)<1000:
pro_5 += i2*y
i2 += 1
while (i3*z)<1000:
pro_15 += i3*z
i3 += 1
print(pro_3)
print(pro_5)
print(pro_15)
print(pro_3 + pro_5 - pro_15)
for문없이 풀어봤네요.
int main() {
int a3,a5,a15;
a3 =(int)(1000/3);
a5 = (int)(1000/5);
a15 = (int)(1000/15);
printf("%d", (((1+a3)*a3/2)*3)+ (((1+a5)*a5/2)*5) -(((1+a15)*a15/2)*15));
return 0;
}
3배수합+5배수합-15배수합
# Multiples of 3 and 5
a=0
b=0
for i in range(1,1000):
a += 1
if a % 3 == 0:
b += a
elif a % 5 == 0:
b += a
print("총합은 {0} 입니다".format(b))
int num2 = 0;
for(int i=1; i<1000; i++) {
if(i%3==0 || i%5==0) {
num2 += i;
}
}
System.out.println(num2);
x = []
num = list(range(1000))
for i in num:
if i % 3 == 0:
x.append(i)
elif i % 5 == 0:
x.append(i)
else:
continue
print(sum(x))
파이썬입니다.
위에 분들 풀이보니 간결하게 쓰려고 노력해야겠네요
리스트 내포라든지 람다라든지..
List = []
for i in range(1,1000):
if i % 3 == 0 or i % 5 == 0:
List.append(i)
print(sum(List))
a = []
b = []
for i in range(1, 10):
if i % 3 == 0:
a.append(i)
elif i % 5 == 0:
b.append(i)
else:
pass
print(sum(a)+sum(b)
sum = 0
for i in range(0,1000,3) :
sum += i
for i in range(0,1000,5) :
sum += i
for i in range(0,1000,15) :
sum -= i
print(sum)
i = 0
result = 0
while i < 1000:
if i % 3 == 0 or i % 5 == 0:
result = result + i
i = i + 1
print(result)
public class Main {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i < 1000; i++) {
if (i % 3 == 0 || i % 5 ==0) {
sum += i;
}
}
System.out.println(sum);
}
}
추천 많은 답을 봐버린 뒤라 다른 답이 안떠오르네요 강력하다... 그저 js로 포팅해보는정도만...
const result = Array.from({length: 1000}, (_, idx) => idx + 1)
.reduce((acc, v) => (v%3 == 0 || v%5 == 0) ? acc + v : acc, 0)
console.log(result)
answer = 0
i=1
while i < 1000:
if i % 3 == 0:
answer += i
i += 1
elif i % 5 == 0:
answer += i
i += 1
else:
i += 1
print(answer)
pop()을 이용했습니다
abs = []
for i in range(1,100):
if i % 3 == 0:
abs.append(i)
if i % 5 == 0:
abs.append(i)
p = 0
j = 0
b = len(abs)
while b > 0 :
j = abs.pop()
p = j + p
b = len(abs)
print(p)
class Multiplyer
{
public:
int k;
Multiplyer()
{
for (int i = 1; i < 1000; i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
i += i;
}
k = i;
}
}
};
int main()
{
Multiplyer a;
cout << a.k<<endl;
}
total = 0
for i in range(1000):
if (i % 3 == 0 or i % 5 == 0) and (i % 15 != 0):
total += i
print(total)
public class Main {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i < 1000; i++) {
if ((i % 3 == 0) || (i % 5 == 0)) sum += i;
}
System.out.println(sum);
package codingDojang;
import java.util.Scanner;
public class Multiplies {
public static void main(String[] args) {
// 10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다.
//
// 1000미만의 자연수에서| 3,5의 배수의 총합을 구하라.
// 답1
int sum = 0;
for (int i = 0; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0) {
sum += i;
}
}
System.out.println(sum);
}
}
여기까지가 일반적으로 풀어본 것이고 아래는 시작값, 끝값, 입력할 수의 개수 등을 모두 정할 수 있는 커스텀 버전임다.
package codingDojang;
import java.util.Scanner;
import java.util.stream.IntStream;
public class Multiplies {
public static void main(String[] args) {
// 커스텀이 가능하게 만든 버전
int start = 1; // 시작값을 받을 변수 선언
int end = 1000; // 끝값을 받을 변수 선언
Scanner sc = new Scanner(System.in); // 입력기능 불러오기
System.out.print("입력한 수의 모든 배수의 합을 구하는 프로그램입니다.\n입력할 수의 개수를 입력하세요.\nEnter: ");
int ea = sc.nextInt(); // 입력할 수의 개수를 받을 변수. 안내 메시지에서 재사용
int[] factors = new int[ea]; // 입력할 수의 개수를 이용해 배열의 길이를 정함.
System.out.print("시작값과 끝값을 입력해주세요.\nEnter: ");
start = sc.nextInt(); // 입력으로 시작값 변수에 저장
end = sc.nextInt(); // 입력으로 끝값 변수에 저장
System.out.printf("\n%d개의 수를 공백이나 Enter를 구분점으로 하여 입력해주세요.\nEnter: ", ea);
for (int i = 0; i < factors.length; i++) { // factors.length 대신 ea를 써도 무방하지만 직관적 이해를 위해 그대로 둠.
factors[i] = sc.nextInt(); // 배열의 길이만큼 수를 입력받아 배열에 채워넣기.
}
System.out.println("정답: " + sumByFactors(start, end, factors)); // 위에서 받은 변수를 이용해 sumByFactors메소드를 사용하여 값을 반환받음.
sc.close(); // 필요는 없으나 노란밑줄이 신경쓰여 적은 코드. 스캐너를 닫아준다.
}
private static int sumByFactors(int start, int end, int[] factors) {
// 배수를 기반으로 모든 배수의 합을 구하는 기능의 메소드
return IntStream.range(start, end) // 범위를 정하는 부분
.filter(j -> { // 조건식 입력하는 부분
boolean tf = false; // return할 조건식의 값이 될 변수 선언
for (int i = 0; i < factors.length; i++) { // 파라미터로 받은 배열의 길이 만큼 반복
tf = tf || j % factors[i] == 0;
// 범위의 수(j)를 파라미터로 받은 배열(int[] factor)의 각 수(factor[i])로 나눈 나머지가 0이면
// factor[i]가 j의 약수인 것이므로 true가 나오고 이를 이전의 tf값과 ||(또는)으로 연결함.
}
return tf; // 모든 반복이 끝났을 때의 tf 값을 반환함.
}).sum(); // 위 조건이 true인 range내의 수의 값만 모두 더하고 return함.
}
}
```{.java}
public class Main {
public static void main(String[] args) {
int[] num = new int[1000];
int[] num1 = new int [1000];
int[] num2 = new int [1000];
int sum = 0;
int sum1 = 0;
int sum2 = 0;
int b = 0;
int c = 0;
int d = 0;
for(int a3 = 0; a3 <1000; a3++){
b = 3*a3;
if(b<1000){
num[a3] = b;
}
sum += num[a3];
}
System.out.println("1000미안의 3의 배수의 합은 : " + sum);
//3의 배수 합 완료
for(int a5 = 0; a5 <1000; a5++){
c = 5*a5;
if(c<1000){
num1[a5] = c;
}
sum1 += num1[a5];
}
System.out.println("1000미안의 5의 배수의 합은 : " + sum1);
//5의 배수 합 완료
for(int a15 = 0; a15 <1000; a15++){
d = 15*a15;
if(d<1000){
num2[a15] = d;
}
sum2 += num2[a15];
}
System.out.println("1000미안의 15의 배수의 합은 : " + sum2);
System.out.println("겹치는 수를 뺀 최종값 : "+(sum+sum1-sum2));
}
}
``기본기로 한번 짜보았습니다.
public class q1 {
public static void main(String[] args) {
int sum3= 0;
int sum5= 0;
for(int i=1; i<1000; i++) {
if(i%3 == 0) {
sum3 += i;
}
else if(i%5 == 0) {
sum5 += i;
}
}
int total = sum3 + sum5;
System.out.println(total);
}
}
#include <iostream>
using namespace std;
const int i =3, j = 5;
const int max_loop{1000};
int main()
{
int ret{};
int max{3};
while ( max < max_loop )
{
if (!(max % 3) || !(max % 5)) {
ret += max;
}
max++;
}
cout << ret << endl;
return 0;
}
int main() {
int probNum=1000;
int sum = 0;
for (int i = 1; i < probNum; i++) {
if (i % 3 == 0 && i%5 != 0) {
sum += i;
}
if (i % 3 != 0 && i % 5 == 0) {
sum += i;
}
if (i % 3 == 0 && i % 5 == 0) {
sum += i;
}
}
printf("%d", sum);
return 0;
}
end = int(input("어디까지 구할까요? :"))
sum3 = 0
sum5 = 0
for i in range(1, end + 1):
if i % 3 ==0:
sum3 += i
elif i % 5 == 0:
sum5 += i
else:
continue
total = sum3 + sum5
print("1에서 {}까지 3, 5의 배수의 총합 :".format(end), total)
public class Multiples {
public static void main(String[] args) {
int count = 0 ;
int sum = 0 ;
for ( int i = 1 ; i<1000 ; i++ ) {
if ( i%3 == 0 || i%5 == 0 ) {
sum += i ;
count++ ;
}
}
System.out.println(sum);
System.out.println("\n갯수: " + count );
}
}
To1000List = [i for i in range(1000) if i % 3 == 0 or i % 5 == 0]
print(f'배수 총합: {sum(To1000List)}')
def Euler(Number):
three_or_five=[]
numbers=range(1,Number)
for number in numbers:
if number % 3==0:
three_or_five.append(number)
elif number % 5==0:
three_or_five.append(number)
else: continue
return sum(three_or_five)
Euler(1000)
li=[]
for i in range(1, 1000):
if i%3==0:
li.append(i)
elif i%5==0:
li.append(i)
print(li)
sum=0
for item in li:
sum=sum+item
print(sum)
3의 배수인 게 밝혀졌다면 5의 배수 케이스를 건너뛰어 계산하기 때문에 중복을 막을 수 있습니다.
a=[]
b=[]
an=0
allplus=0
for i in range(1,1000):
if i%3==0:
a.append(i)
allplus=allplus+i
for i in range(1,1000):
if i%5==0:
b.append(i)
allplus=allplus+i
for i in range(1,1000):
if i%15==0:
an=an+i
allplus=allplus-an
print(allplus)
list1=[]
for i in range(1,1000):
if i % 3 == 0 or i%5 ==0:
list1.append(i)
sum1=0
for i in list1:
sum1 += i
print(sum1)
sum=0
sum1=0
for i in range(3,1000,3):
sum=sum+i
for j in range(5,1000,5):
sum1=sum1+j
print(sum+sum1)
정답 : 266333
total = 0
for i in range(1, 1000):
if i % 3 == 0:
# print('3의 배수', i)
total += i
elif i % 5 == 0:
# print('5의 배수', i)
total += i
print('1000 미만의 3, 5 배수 총합 :', total)
정답은 233168
package b;
import java.util.*;
public class b {
public static void main(String[] args) {
int [] num;
int sum=0;
num = new int[100];
for(int i=0; i<100; i++){
num[i]=0;
}
for(int i=1; i<=100; i++){
if(i%3==0) {
num[i-1]=i;
}
else if(i%5==0) {
num[i-1]=i;
}
}
for(int i=0; i<100; i++){
sum+=num[i];
}
System.out.println("결과 "+sum);
}
}
three_list = []
five_list = []
max_value = 1000
for i in range(3, max_value+1, 3):
three_list.append(i)
for i in range(5, max_value+1, 5):
five_list.append(i)
val_list = list(set(three_list) | set(five_list))
print(sum(val_list))
def multiple_sum(n):
sum = 0
for i in range(1, n+1)
if (i% == 3) or (i%7 == 0):
sum +=
return(sum)
print(sum(1000))
sum=0 i=0 while i in range(1000): if i%3==0: sum+=i i+=1 elif i%5==0: sum+=i i+=1 else: i+=1 continue print(sum)
public class coding_dojang {
public static void main(String[] args) {
int sum=0;
int i =1;
while(i<1000) {
if(i%3==0||i%5==0) {
sum=sum+i;
}
i=i+1;
}
// TODO Auto-generated method stub
}
}
input = 1000
total = 0
for idx in range(input):
if idx % 3 == 0 or idx % 5 == 0:
remember = idx
total += remember
print(total)
total = sum(set(range(3,1000,3)).union(set(range(5,1000,5))))
print(total)
풀이 방법이 많네요 저는 union 함수로 합집합했습니다
def incase(x):
k = 0
for n in range(1, 1000//x +1):
k += x*n
return k
print(incase(3) + incase(5) - incase(15)-1000)
python
three = []
for i in range(1,1000):
if i % 3 == 0 or i % 5 == 0:
three.append(i)
print(three)
print(sum(three))
1000 미만의 숫자를 고려하므로 999까지의 숫자 중 3과 5의 배수가 몇 개인지 구합니다.
max = 1000 - 1
num_mul_3 = int(max / 3)
num_mul_5 = int(max / 5)
3과 5의 배수 집합 각각 생성합니다.
mul_3 = {3*(x+1) for x in range(num_mul_3)}
mul_5 = {5*(x+1) for x in range(num_mul_5)}
3의 배수 집합과 5의 배수 집합의 합집합을 구하고, 구성 원소의 합을 구합니다.
mul_3_5 = mul_3 | mul_5
print(sum(mul_3_5))
int a = 0;
for (int i = 0; i < 1000; i++) {
if(i % 3 == 0 || i % 5 == 0) {
a = i + a;
}
}
System.out.println(a);
list_multiple_3=list()
list_multiple_5=list()
for a in range(1,1000):
if a%3==0:
list_multiple_3.append(a)
for b in range(1,1000):
if b%5==0:
list_multiple_5.append(b)
set_multiples_3_5=set(list_multiple_3+list_multiple_5)
list_multiples_3_5=list(set_multiples_3_5)
total_multiples_3_5=0
for c in range(len(list_multiples_3_5)):
total_multiples_3_5+=list_multiples_3_5[c]
print(total_multiples_3_5)
#1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
hap=0
for i in range(1,1000):
if i % 3==0 and i%5==0:
hap += i
print(hap)
def solution(num) : set3 = {i for i in range(3,num,3)} set5 = {i for i in range(5,num,5)}
res = set3 | set5
res = sum(list(res))
return res
solution(1000)
public class SelfTest_1 {
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);
}
}
public class ex01 {
public static void main(String[] args) {
int num = 0;
int sum = 0;
for(int i = 0;i<1000;i++) {
if(i%3 == 0) {
sum += i;
}
}
for(int i = 0;i<1000;i++) {
if(i%5 == 0) {
num += i;
}
}
System.out.printf("%d,%d",num,sum);
}
}
public class trialAndError {
public static void main(String[] args) {
int total = 0; // 합계를 0으로 초기화
for(int i = 1; i < 1000; i++) {
if(i % 3 == 0 || i % 5 == 0) {
total += i; // 3으로 나누어 떨어지거나 5로 나누어 떨어지는 수는
// 3이나 5의 배수이므로 이런 방식으로 찾게 된다.
}
} // 반복문을 통하여 모든 3, 5의 배수 찾기
System.out.println("합계는 " + total);
}
}
tot = 0
for i in range(1000):
if i % 3 == 0 or i % 5 == 0
tot += i
print("Total Sum:",tot)
sum = sum([x for x in range(1, 1000) if x % 3 == 0 or x % 5 ==0])
print(f'1000 미만의 수 중 3 또는 5의 배수의 총 합은 {sum} 입니다.')
10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다.
1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
sum =0
for i in range(1, 100):
if (i%3==0 or i%5==0):
sum += i
print(sum)
10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다.
1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
sum =0
for i in range(1, 1000):
if (i%3==0 or i%5==0):
sum += i
print(sum)
정답 : 233168
list = []
for x in range(1, 1000):
if x % 3 == 0 or x % 5 == 0:
list.append(x)
sum_list = sum(list)
print(sum_list)
for문으로 1에서부터 1000까지 3이나 5로 나누었을때 나머지가 0인 경우에만 total 변수에 더해 배수의 총합을 구할 수 있다
package day;
public class multiples3and5 {
public static void main(String[] args) {
int total = 0;
for (int i = 1; i < 1000; i++) {
if(i%3==0||i%5==0) {
total += i;
}
}
System.out.println(total);
}
}
public int countNum() {
int count = 0;
for(int i=1;i<=1000;i++) {
if(i%3 == 0 || i%5 == 0) {
count+=i;
}
}
return count;
}
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.print(sum);
}
#include <stdio.h>
int main(void){
int sum = 0;
for(int i=0; i<1000; i++){
if(i%3==0){
sum = sum + i;
}
}
for(int i=0; i<1000; i++){
if(i%5==0){
sum = sum + i;
}
}
for(int i=0; i<1000; i++){
if(i%15==0){
sum = sum - i;
}
}
printf("%d\n", sum);
return 0;
}
sum = 0
#3과 5로 나누었을 때 나머지가 0이라면 3의 배수 또는 5의 배수라고 할 수 있다.
for i in range(1,1000):
if i%3 == 0 or i%5 == 0:
sum += i
using System;
using static System.Console;
namespace 알고리즘
{
internal class Program
{
public static void Main(string[] args)
{
int temp = 0;
for (int i = 1; i < 1000 i++)
{
if (i % 3 == 0 || i % 5 == 0)
{
temp += i;
}
}
WriteLine(temp);
}
}
}
s1= 0 s2 = 0 s3 = 0 result = 0
for i in range(1, 101): if i % 3 == 0: s1 = s1 + i elif i % 5 == 0: s2 = s2 + i elif i % 15 == 0: s3 = s3 + i
result = s1 + s2 - s3 print(result)
public class Main {
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);
}
}
n3 = (1000-1) // 3
n5 = (1000-1) // 5
n15 = (1000-1)//15
print(3*(n3+1)*n3//2 + 5*(n5+1)*n5//2 - 15*(n15+1)*n15//2 )
#include <stdio.h>
int main(void) {
int sum = 0;
for (int i = 0; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0) {
sum += i;
}
}
printf("1000미만의 자연수에서 3, 5의 배수의 총합 : %d\n", sum);
return 0;
}
int max = 1000;
int i ;
int result =0 ;
for( i = 1 ; i<max ; i++){
if (i%3 == 0 || i %5 ==0){
result = result + i;
}
}
System.out.println("결과 : " + result);
Three=[]
Five=[]
for i in range(1,1001):
if i%3 == 0:
Three.append(i)
elif i%5==0:
Five.append(i)
s = 0
for k in Three:
s += k
for J in Five: s += J
print (s)
total = 0 for i in range(1,1000): if i%3 == 0: total += i elif i%5 ==0: total += i print("1000미만의 자연수 중 3,5의 배수의 총합은 {}입니다.".format(total))
list_num = []
for i in range(1000):
if i % 3 == 0 or i % 5 == 0:
list_num.append(i)
print(sum(list_num))
```{.java}
```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);
}
n=int(input())
three = 0
five = 0
for i in range(n):
if i % 5 == 0:
five += i
elif i % 3 == 0:
three += i
print(five+three)
a = set(range(3,1000,3)) b = set(range(5,1000,5)) print(sum(a|b))
3의 배수의 집합과 5의 배수의 집합의 합집합을 구하고 모든 요소를 더해서 233168 이라는 결과값을 구할 수 있습니다.
x = 3 y = 5 limit = 1000 multiples = set() count = 1
while x * count < limit: multiples.add(x*count) count+=1
count = 1 while y * count < limit: multiples.add(y*count) count+=1
result = sum(multiples) print(result)
public class multipleOf3and5 {
public static void main(String[] args) {
int sum = 0;
for(int i = 1; i <1000; i++){
if(i % 3 == 0 || i % 5 == 0){
sum += i;
}
}
System.out.println("총합은 " + sum + "입니다.");
}
}
``````{.java}
public class multipleOf3and5 {
public static void main(String[] args) {
int sum = 0;
for(int i = 1; i <1000; i++){
if(i % 3 == 0 || i % 5 == 0){
//System.out.println(i);
sum += i;
}
}
System.out.println(sum);
}
//package Multiples_of_3_and_5;
public class Main {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i < 1000; i++) {
if (i % 3 == 0 || i % 5 == 0) {
sum += i;
}
}
System.out.println(sum);
}
}
def sum_3_5 (num): sum = 0 for i in range(1, num): if i % 3 == 0 or i % 5 == 0: sum += i
return sum
if name=='main': print(sum_3_5(1000))
```{.c}
```#include
}
printf("3과 5의 배수의 총합: %d", total);
return 0;
}
log=[]
for i in range(1000): if i+1%3==0: sum.log(i+1) elif i+1%5==0 sum.log(i+1)
print(sum(list(set(log))))
a = 3
b = 5
result = []
for i in range(1, 1000) :
if i % 3 == 0 or i % 5 == 0 :
result.append(i)
print(sum(result))
print(len(result))
``````{.python}
package Exemples;
public class _01_Ex { // 10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다. // 1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
public static void calculator(int k) {
int input = k;
int sum=0;
for(int i=0; i<k; i++) {
if (i%3==0 || i%5==0)
sum+=i;
}
System.out.println(sum);
}
public static void main(String[] args) {
calculator(1000);
}
}
namespace _213123
{
internal class Program
{
static void Main(string[] args)
{
for(int i = 1; i < 1000; i++)
{
if(i % 3 == 0 || i % 5 == 0)
{
Console.WriteLine(i);
}
}
}
}
}
def sum_of_multiple(n, range): a = (range-1) // n return (n + n * a) * a // 2
sum3 = sum_of_multiple(3,1000) sum5 = sum_of_multiple(5,1000) sum15 = sum_of_multiple(15,1000)
total_sum1 = sum3 + sum5 - sum15 print(f"1000 미만의 자연수에서 3과 5의 배수의 총합: {total_sum1}")```{.python}
```
// 10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다.
// 1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
let result = 0;
for (let index = 1; index < 1000; index++) {
if (index % 3 == 0 || index % 5 == 0) {
} result += index;
}
console.log(result);
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
int answer = 0;
for(int i = 1; i < 1000; i++) {
if(i % 3 == 0 || i % 5 == 0) {
answer += i;
}
}
System.out.println(answer);
}
}
sum_multiples_3_and_5 = 0
for i in range(1,1000): if i % 3 == 0 or i % 5 == 0: sum_multiples_3_and_5 += i else: continue
print(sum_multiples_3_and_5)
//1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
Array(1000).fill(1).map((i,idx)=>i+idx).filter((v)=>v%3===0 || v%5===0).reduce((a,c)=>a+c,0)
JAVA입니다.
package multiples_of_3_and_5;
public class Multiple {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum = 0;
for (int i = 1; i < 1000; i++) {
if (multipleOf(i, 3) || multipleOf(i, 5)) {
sum += i;
}
}
System.out.println(sum);
}
static boolean multipleOf(int num, int div) {
return (double)num/div == (double)(num/div);
}
}
public class Solve{
public static void main(String args[]) {
int num = 1000;
int sum = 0
for (int i = 1, i <= num, i++) {
if(i % 3 == 0){
sum += i
} else if (i % 5 == 0){
sum += i
}
System.out.println(sum)
}
}
def main():
num = 1000
total = 0
for x in range(num):
if x % 3 == 0 or x % 5 == 0:
total += x
print(total)
main()
sum = 0
for i in range(1, 1000):
if i % 3 == 0 or i % 5 == 0:
sum += i
print(f"total : {sum}")
파이썬입문자입니다 답 233168
10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다. 1000미만의 자연수에서 3,5의 배수의 총합을 구하라.
a=0
for i in range(0,1000):
if i%3==0 or i%5==0
a+=i
else:
pass
print(a)
답: 233168
def sum_35(): a=0 for i in range(1, 1000): if i % 3 == 0 or i % 5 == 0: a = a + i return a
result=sun_35() print(result)
def sum_35():
a=0
for i in range(1, 1000):
if i % 3 == 0 or i % 5 == 0:
a = a + i
return a
result=sun_35()
print(result)
answer=0
i=1
while i<1000:
if i%3==0:
answer=answer+i
if i%5==0:
answer=answer+i
if i%15==0:
answer=answer-i
i=i+1
``````{.python}
answer=0
i=1
while i<1000:
if i%3==0:
answer=answer+i
if i%5==0:
answer=answer+i
if i%15==0:
answer=answer-i
i=i+1
sum = 0
list_num =[]
list_15 =[]
for i in range(1000) :
if (i % 3) == 0 :
if (i % 5) == 0 :
list_15.append(i)
sum = sum + i
else :
list_num.append(i)
sum = sum + i
elif (i%5) == 0 :
if (i % 3) == 0 :
continue
else :
list_num.append(i)
sum = sum + i
else :
continue
print(sum)
lists = []
def sum_3_and_5():
for i in range(1, 1000):
if i % 3 == 0 or i % 5 == 0:
lists.append(i)
return sum(lists)
print(sum_3_and_5())
def Euler_sum(Target_num, div_num):
max = (Target_num -1) // div_num
mul = (1 + max) * max / 2
sum = mul * div_num
return sum
result =Euler_sum(1000, 3) + Euler_sum(1000, 5) - Euler_sum(1000, 15)
print(result)