Skip to content

Latest commit

ย 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

README.md

Problem 3

Largest prime factor

The prime factors of 13195 are 5, 7, 13 and 29.
What is the largest prime factor of the number 600851475143 ?

Korean: http://euler.synap.co.kr/prob_detail.php?id=3
English: https://projecteuler.net/problem=3

System Requirement

  • Tool: Visual Studio Community 2017
  • Language: Visual Basic .NET
  • Framework: .NET Core 2.0
  • Visual Studio Project: .NET Core Console App

.NET Core 2.1 SDK Downloads (If you do not want Visual Studio Community 2017)

Test - bash

Change directory git root: /Problem3 and compile

dotnet build

Run

dotnet run

Test - Visaul Studio Community 2017

  • Open visual studio solution file "Problem3.sln" by Visual Studio Community 2017
  • Check out install packages - .NET Core 2.0 and Visual Basic Environment
  • Press F5 to debug start

Solve

  • Prime number ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ํ”ํ•˜๋‹ค.
  • ์ž˜ ์ƒ๊ฐํ•ด ๋ณด๋ฉด ์‹ค์ œ๋กœ prime factor๋ฅผ ๊ตฌํ•ด์„œ ๋‚˜๋ˆ  ๊ฐ€๋ฉด์„œ ๊ตฌํ•˜๋Š”๊ฒŒ ๋‹ต์ธ ๊ฒƒ ๊ฐ™๋‹ค.
  • ์ฒ˜์Œ์—๋Š” ์ฃผ์–ด์ง„ ์ˆซ์ž๋ณด๋‹ค ์ž‘์€ prime number๋ฅผ ์ฐจ๋ก€๋กœ ๊ตฌํ•˜๋ฉด ๋ ๊ฑฐ๋ผ ์ƒ๊ฐํ–ˆ๋Š”๋ฐ, ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด ์ƒ๊ฐ๋ณด๋‹ค ํ›จ์”ฌ ๋งŽ์€ prime number๋ฅผ ๊ตฌํ•˜๋ฉด์„œ factor๋ฅผ ์ฐพ์•„์•ผ ํ•œ๋‹ค.
  • ๊ทธ๋ž˜์„œ ๋‹ค์‹œ ์ •๊ณต๋ฒ•์œผ๋กœ ๊ตฌํ•ด๋ณด๋Š” ๊ฑธ๋กœ ๋ฐ”๊ฟจ๋Š”๋ฐ ๊ทธ ์ด์œ ๋Š” factor๋กœ ๋‚˜๋ˆ—์…ˆ์„ ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋๊นŒ์ง€ ๊ตฌํ•ด์•ผ ํ•˜๋Š” prime number์™€ factor์˜ ๋ฒ”์œ„๋Š” n/factor๋กœ ๋”์šฑ ์ž‘์•„์ง€๋ฏ€๋กœ ๊ฒฐ๊ตญ ๋’ค์—์„œ ์ฐพ๋Š” ๊ฒƒ ๋ณด๋‹ค ๋” ๋นจ๋ฆฌ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.
  • ์‹œ๊ฐ„ ๋ณต์žก๋„ ์—ญ์‹œ (์‚ฌ์‹ค์ƒ) O(n)์œผ๋กœ ๊ฒฐ์ •๋  ์ˆ˜ ์žˆ๋‹ค. (์›๋ž˜ ๋ณต์žก๋„๋Š” O(sqrt(n))์ด๋‹ค.) n๋ณด๋‹ค ์ž‘์€ factor๋ฅผ ์ฐพ์•„๋‚ธ๋‹ค๋ฉด n์€ ๊ธ‰๊ฒฉํžˆ ์ค„์–ด๋“ค์ง€๋งŒ ์ตœ์•…์˜ ๊ฒฝ์šฐ์˜ factor๋Š” ์ž๊ธฐ ์ž์‹ ์ธ n์ผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ฒฐ๊ตญ factor๋ฅผ ์ฐพ์•„๋‚ด๋Š” ๊ณผ์ •์€ ์ตœ๋Œ€ n์ด๋‹ค.

Review

  • ์ด ๋ฌธ์ œ์—์„œ ์‚ฌ์šฉํ•˜๋Š” VB.NET ๋งŒ์˜ ํŠน์ง•์€ ์—†๋‹ค.
  • ์–ด์ฐจํ”ผ ๋ฌธ๋ฒ•์€ VB.NET ์ด์ง€๋งŒ .NET Core๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ namespace๊ฐ€ ๊ฐ™๋‹ค. ๋”ฐ๋ผ์„œ C#์—์„œ ํ–ˆ๋˜ ์ง“์ด ๊ฑฐ์˜ ๋œ๋‹ค๋Š” ๋А๋‚Œ์œผ๋กœ ํ•˜๋ฉด ๋“ค์–ด๋งž๋Š”๋‹ค.
  • ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๊ฐ€ Math.Sqrt() ์‚ฌ์šฉํ•  ๋•Œ.