From 7c4c42ceaf596c9bb6945fdf30cc13aacb233517 Mon Sep 17 00:00:00 2001 From: rtang09 <49603415+rtang09@users.noreply.github.com> Date: 2023年10月10日 23:46:34 -0700 Subject: [PATCH 1/8] Create Problem069.js --- Project-Euler/Problem069.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 Project-Euler/Problem069.js diff --git a/Project-Euler/Problem069.js b/Project-Euler/Problem069.js new file mode 100644 index 0000000000..5ed65d332d --- /dev/null +++ b/Project-Euler/Problem069.js @@ -0,0 +1,24 @@ +/** +// https://projecteuler.net/problem=69 + +Euler's totient function, phi(n) [sometimes called the phi function], is defined +as the number of positive integers not exceeding n which are relatively prime to n. +For example, as 1, 2, 4, 7, 8, are all less than or equal to nine +and relatively prime to nine, phi(9)=6. + +It can be seen that n=6 produces a maximum n/phi(n) for n <= 10 + +Find the value of n <= 1000000 for which n/phi(n) is a maximum. + + */ +export const answer = (maxval) => { + //To minimize n/phi(n), phi(n) must have the most unique prime factors, n must be equal to the product of primes each to the first power, so it equals to 2*3*5*7*... + var productsofar = 1; + var primes = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,57]; + for (var idx=0;idx= maxval){ + return productsofar + } + productsofar *= primes[idx] + } +} From 13bc93de43ad71396f7e28543a232ecda1bb39df Mon Sep 17 00:00:00 2001 From: rtang09 <49603415+rtang09@users.noreply.github.com> Date: 2023年10月10日 23:48:17 -0700 Subject: [PATCH 2/8] Update Problem069.js --- Project-Euler/Problem069.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project-Euler/Problem069.js b/Project-Euler/Problem069.js index 5ed65d332d..ceab79e442 100644 --- a/Project-Euler/Problem069.js +++ b/Project-Euler/Problem069.js @@ -12,7 +12,7 @@ Find the value of n <= 1000000 for which n/phi(n) is a maximum. */ export const answer = (maxval) => { - //To minimize n/phi(n), phi(n) must have the most unique prime factors, n must be equal to the product of primes each to the first power, so it equals to 2*3*5*7*... + //To maximize n/phi(n), phi(n) must have the most unique prime factors, n must be equal to the product of primes each to the first power, so it equals to 2*3*5*7*... var productsofar = 1; var primes = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,57]; for (var idx=0;idx Date: 2023年10月10日 23:48:45 -0700 Subject: [PATCH 3/8] Update Problem069.js --- Project-Euler/Problem069.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project-Euler/Problem069.js b/Project-Euler/Problem069.js index ceab79e442..bcf0a3ce9d 100644 --- a/Project-Euler/Problem069.js +++ b/Project-Euler/Problem069.js @@ -12,7 +12,7 @@ Find the value of n <= 1000000 for which n/phi(n) is a maximum. */ export const answer = (maxval) => { - //To maximize n/phi(n), phi(n) must have the most unique prime factors, n must be equal to the product of primes each to the first power, so it equals to 2*3*5*7*... + //To maximize n/phi(n), phi(n) must be minimized, so phi(n) must have the most unique prime factors, and n must be equal to the product of primes each to the first power, so it equals to 2*3*5*7*... var productsofar = 1; var primes = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,57]; for (var idx=0;idx Date: 2023年10月10日 23:49:55 -0700 Subject: [PATCH 4/8] Update Problem069.js --- Project-Euler/Problem069.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project-Euler/Problem069.js b/Project-Euler/Problem069.js index bcf0a3ce9d..3e39a72588 100644 --- a/Project-Euler/Problem069.js +++ b/Project-Euler/Problem069.js @@ -16,7 +16,7 @@ export const answer = (maxval) => { var productsofar = 1; var primes = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,57]; for (var idx=0;idx= maxval){ + if (productsofar*primes[idx]> maxval){ return productsofar } productsofar *= primes[idx] From 23f34a3ded2ff2701ce2630d9de79d9ffe27e90c Mon Sep 17 00:00:00 2001 From: rtang09 <49603415+rtang09@users.noreply.github.com> Date: 2023年10月10日 23:50:56 -0700 Subject: [PATCH 5/8] Create Problem069.test.js --- Project-Euler/test/Problem069.test.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 Project-Euler/test/Problem069.test.js diff --git a/Project-Euler/test/Problem069.test.js b/Project-Euler/test/Problem069.test.js new file mode 100644 index 0000000000..337a1207b8 --- /dev/null +++ b/Project-Euler/test/Problem069.test.js @@ -0,0 +1,12 @@ +import { answer } from '../Problem069.js' + +describe('maximizing n/phi(n)', () => { + // Project Euler Condition Check + test('Maximum value for n <= 1000', () => { + expect(problem44(1000)).toBe(210) + }) + // Project Euler Second Value for Condition Check + test('Maximum value for n <= 123456789', () => { + expect(problem44(123456789)).toBe(9699690) + }) +}) From 02a13413a6eb7768ef79d5661d2d94b7c257ccda Mon Sep 17 00:00:00 2001 From: rtang09 <49603415+rtang09@users.noreply.github.com> Date: 2023年10月10日 23:52:06 -0700 Subject: [PATCH 6/8] Update Problem069.js --- Project-Euler/Problem069.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Project-Euler/Problem069.js b/Project-Euler/Problem069.js index 3e39a72588..5304c4d078 100644 --- a/Project-Euler/Problem069.js +++ b/Project-Euler/Problem069.js @@ -11,14 +11,14 @@ It can be seen that n=6 produces a maximum n/phi(n) for n <= 10 Find the value of n <= 1000000 for which n/phi(n) is a maximum. */ -export const answer = (maxval) => { - //To maximize n/phi(n), phi(n) must be minimized, so phi(n) must have the most unique prime factors, and n must be equal to the product of primes each to the first power, so it equals to 2*3*5*7*... - var productsofar = 1; +export const answer = (maxVal) => { + //To minimize n/phi(n), phi(n) must have the most unique prime factors, n must be equal to the product of primes each to the first power, so it equals to 2*3*5*7*... + var productSoFar = 1; var primes = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,57]; for (var idx=0;idx maxval){ - return productsofar + if (productSoFar*primes[idx]> maxVal){ + return productSoFar } - productsofar *= primes[idx] + productSoFar *= primes[idx] } } From 9f2c6c39895242658a0dca7191e19bb3ed4f3934 Mon Sep 17 00:00:00 2001 From: rtang09 <49603415+rtang09@users.noreply.github.com> Date: 2023年10月10日 23:55:22 -0700 Subject: [PATCH 7/8] Update Problem069.js --- Project-Euler/Problem069.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Project-Euler/Problem069.js b/Project-Euler/Problem069.js index 5304c4d078..4837741f29 100644 --- a/Project-Euler/Problem069.js +++ b/Project-Euler/Problem069.js @@ -17,8 +17,8 @@ export const answer = (maxVal) => { var primes = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,57]; for (var idx=0;idx maxVal){ - return productSoFar + return productSoFar; } - productSoFar *= primes[idx] + productSoFar *= primes[idx]; } } From b7240ae422d7a1402ca16b885bf559d131355db0 Mon Sep 17 00:00:00 2001 From: rtang09 <49603415+rtang09@users.noreply.github.com> Date: 2023年10月10日 23:56:10 -0700 Subject: [PATCH 8/8] Update Problem069.test.js --- Project-Euler/test/Problem069.test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Project-Euler/test/Problem069.test.js b/Project-Euler/test/Problem069.test.js index 337a1207b8..1e7dded415 100644 --- a/Project-Euler/test/Problem069.test.js +++ b/Project-Euler/test/Problem069.test.js @@ -3,10 +3,10 @@ import { answer } from '../Problem069.js' describe('maximizing n/phi(n)', () => { // Project Euler Condition Check test('Maximum value for n <= 1000', () => { - expect(problem44(1000)).toBe(210) + expect(answer(1000)).toBe(210) }) // Project Euler Second Value for Condition Check test('Maximum value for n <= 123456789', () => { - expect(problem44(123456789)).toBe(9699690) + expect(answer(123456789)).toBe(9699690) }) })

AltStyle によって変換されたページ (->オリジナル) /