Problem #006
✏️ 𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺/etc

Problem #006

오일러 알고리즘

🚩 문제 설명

오일러 알고리즘 #06

◾ 1 ~ 100 까지 제곱의 합
◾ 1 ~ 100 까지 합의 제곱의 차를 구하는 문제

예1. 제곱의합
1^2 + 2^2 + ... + 100^2

예2. 합의 제곱
(1 + 2 + ... + 100)^2

 

 


 

 

📑 문제 풀이

//20200121 오일러알고리즘 Problem 6
#include <iostream>
using namespace std;

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr); cout.tie(nullptr);

	int sum1 = 0;
	int sum2 = 0, pow = 0;

	//합의 제곱
	for (int i = 1; i <= 100; i++)
	{
		sum1 += i;
	}
	sum1 *= sum1;
	cout << "합의 제곱: " << sum1 << "\n";

	//곱의 제곱
	for (int i = 1; i <= 100; i++)
	{
		sum2 += i * i;
	}
	cout << "제곱의 합: " << sum2 << "\n";
	cout << "답:" << sum1-sum2 << "\n";

	return 0;
}

💬 Point

👉 만능 반복문 사용

◾ 반복문을 사용한다.

◾ 이번 문제는 쉬워서 맞추면 프로그래밍을 잘한다는 착각을 불러일으킨다.

◾ 제곱의 합은 1부터 100까지 i를 두번 곱해서 sum에 더해준다.

◾ 합의 제곱은 모든 합을 구해서 두번 곱해준다.

 

 


 

 

But,

✅ 만약 시간을 줄이고 싶다면 수열의 합을 이용하여 구하는 방법도 있다고 한다.

➕ Solution 사이트 첨부

https://www.mathblog.dk/project-euler-problem-6/

 

Solution to Project Euler problem 6 in C# | MathBlog

Find the difference between the sum of the squares of the first one hundred natural numbers and the square of the sum. I will provide you with two different solutions. A brute force approach which works nicely when N is small (100 is considered small), and

www.mathblog.dk

 

 

 

 

 

 

 

 

 

 


 

728x90

'✏️ 𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺 > etc' 카테고리의 다른 글

Problem #010  (0) 2020.01.30
Problem #008  (0) 2020.01.28
Problem #005  (0) 2020.01.20
Problem #004  (0) 2020.01.16
Problem #003  (0) 2020.01.08