diff --git a/curriculum/challenges/italian/10-coding-interview-prep/project-euler/problem-10-summation-of-primes.md b/curriculum/challenges/italian/10-coding-interview-prep/project-euler/problem-10-summation-of-primes.md index e2093b2965a..d0c3799074c 100644 --- a/curriculum/challenges/italian/10-coding-interview-prep/project-euler/problem-10-summation-of-primes.md +++ b/curriculum/challenges/italian/10-coding-interview-prep/project-euler/problem-10-summation-of-primes.md @@ -60,22 +60,33 @@ primeSummation(2000000); # --solutions-- ```js -function primeSummation(n) { - if (n < 3) { return 0 }; - let nums = [0, 0, 2]; - for (let i = 3; i < n; i += 2){ - nums.push(i); - nums.push(0); - } - let sum = 2; - for (let i = 3; i < n; i += 2){ - if (nums[i] !== 0){ - sum += nums[i]; - for (let j = i*i; j < n; j += i){ - nums[j] = 0; +const NUM_PRIMES = 2000000; +const PRIME_SEIVE = Array(Math.floor((NUM_PRIMES-1)/2)).fill(true); +(function initPrimes(num) { + const upper = Math.floor((num - 1) / 2); + const sqrtUpper = Math.floor((Math.sqrt(num) - 1) / 2); + for (let i = 0; i <= sqrtUpper; i++) { + if (PRIME_SEIVE[i]) { + // Mark value in PRIMES array + const prime = 2 * i + 3; + // Mark all multiples of this number as false (not prime) + const primeSqaredIndex = 2 * i ** 2 + 6 * i + 3; + for (let j = primeSqaredIndex; j < upper; j += prime) { + PRIME_SEIVE[j] = false; } } } +})(NUM_PRIMES); + +function isOddNumberPrime(num) { + return PRIME_SEIVE[(num - 3) / 2]; +} + +function primeSummation(n) { + let sum = 2; + for (let i = 3; i < n; i += 2) { + if (isOddNumberPrime(i)) sum += i; + } return sum; } ``` diff --git a/curriculum/challenges/italian/10-coding-interview-prep/project-euler/problem-47-distinct-primes-factors.md b/curriculum/challenges/italian/10-coding-interview-prep/project-euler/problem-47-distinct-primes-factors.md index 7ef8658afea..e35a5f7f26e 100644 --- a/curriculum/challenges/italian/10-coding-interview-prep/project-euler/problem-47-distinct-primes-factors.md +++ b/curriculum/challenges/italian/10-coding-interview-prep/project-euler/problem-47-distinct-primes-factors.md @@ -68,13 +68,13 @@ distinctPrimeFactors(4, 4); ```js // Initalize factor count with seive -const NUMFACTORS = Array(150000).fill(0); +const NUMFACTORS = Array(135000).fill(0); (function initFactors(num) { for (let i = 2; i < num; i++) if (NUMFACTORS[i] === 0) for (let j = i; j < num; j += i) NUMFACTORS[j]++; -})(150000); +})(135000); function distinctPrimeFactors(targetNumPrimes, targetConsecutive) { let numConsecutive = 0; diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148f6f7d8914c78e93136ca.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148f6f7d8914c78e93136ca.md index 8562f42b1a0..15c2ec3428d 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148f6f7d8914c78e93136ca.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148f6f7d8914c78e93136ca.md @@ -387,7 +387,7 @@ hr { .hero-subtitle, .author, .quote, - .list-header { + .list-title { font-size: 1.8rem; } @@ -759,7 +759,7 @@ hr { .hero-subtitle, .author, .quote, - .list-header { + .list-title { font-size: 1.8rem; } diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98d7.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98d7.md index fcf5ec924a7..a205d04f8de 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98d7.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98d7.md @@ -20,7 +20,7 @@ assert.exists(new __helpers.CSSHelp(document).getStyle('.bb1a')?.backgroundColor Dovresti usare `var(--building-color1)` per impostare la proprietà `background-color` dell'elemento `.bb1a`. ```js -assert.equal(new __helpers.CSSHelp(document).getStyle('.bb1a')?.backgroundColor.trim(), 'var(--building-color1)'); +assert.equal(new __helpers.CSSHelp(document).getStyle('.bb1a')?.getPropVal('background-color', true), 'var(--building-color1)'); ``` # --seed-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98d8.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98d8.md index bd7a3d047e2..b2b71802843 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98d8.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98d8.md @@ -20,7 +20,7 @@ assert.exists(new __helpers.CSSHelp(document).getStyle('.bb1b')?.backgroundColor Dovresti usare `var(--building-color1)` per impostare la proprietà `background-color` dell'elemento `.bb1b`. ```js -assert.equal(new __helpers.CSSHelp(document).getStyle('.bb1b')?.backgroundColor.trim(), 'var(--building-color1)'); +assert.equal(new __helpers.CSSHelp(document).getStyle('.bb1b')?.getPropVal('background-color', true), 'var(--building-color1)'); ``` Dovresti impostare la proprietà `background-color` per l'elemento `bb1c`. @@ -32,7 +32,7 @@ assert.exists(new __helpers.CSSHelp(document).getStyle('.bb1c')?.backgroundColor Dovresti usare `var(--building-color1)` per impostare la proprietà `background-color` dell'elemento `.bb1c`. ```js -assert.equal(new __helpers.CSSHelp(document).getStyle('.bb1c')?.backgroundColor.trim(), 'var(--building-color1)'); +assert.equal(new __helpers.CSSHelp(document).getStyle('.bb1c')?.getPropVal('background-color', true), 'var(--building-color1)'); ``` Dovresti impostare la proprietà `background-color` per l'elemento `bb1d`. @@ -44,7 +44,7 @@ assert.exists(new __helpers.CSSHelp(document).getStyle('.bb1d')?.backgroundColor Dovresti usare `var(--building-color1)` per impostare la proprietà `background-color` dell'elemento `.bb1d`. ```js -assert.equal(new __helpers.CSSHelp(document).getStyle('.bb1d')?.backgroundColor.trim(), 'var(--building-color1)'); +assert.equal(new __helpers.CSSHelp(document).getStyle('.bb1d')?.getPropVal('background-color', true), 'var(--building-color1)'); ``` # --seed-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98de.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98de.md index fe3380500f9..e62394a30a5 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98de.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98de.md @@ -32,7 +32,7 @@ assert.exists(new __helpers.CSSHelp(document).getStyle('.bb2')?.backgroundColor) Dovresti impostare la proprietà `background-color` usando la variabile `--building-color2`. ```js -assert.equal(new __helpers.CSSHelp(document).getStyle('.bb2')?.backgroundColor.trim(), 'var(--building-color2)'); +assert.equal(new __helpers.CSSHelp(document).getStyle('.bb2')?.getPropVal('background-color', true), 'var(--building-color2)'); ``` # --seed-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98df.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98df.md index efd9b0ea2d1..067f593294e 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98df.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98df.md @@ -14,7 +14,7 @@ Hmm, non sono sicuro del perché non ha funzionato. È possibile aggiungere un v Dovresti aggiungere un valore di fallback `green` alla proprietà `background-color`. ```js -assert.equal(new __helpers.CSSHelp(document).getStyle('.bb2')?.backgroundColor.trim(), 'var(--building-color2, green)'); +assert.equal(new __helpers.CSSHelp(document).getStyle('.bb2')?.getPropVal('background-color', true), 'var(--building-color2,green)'); ``` # --seed-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98e0.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98e0.md index 5816c5cb53a..887a49c9013 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98e0.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98e0.md @@ -32,7 +32,7 @@ assert.exists(new __helpers.CSSHelp(document).getStyle('.bb3')?.backgroundColor) Dovresti impostare la proprietà `background-color` usando la variabile `--building-color3` e il fallback `pink`. ```js -assert.equal(new __helpers.CSSHelp(document).getStyle('.bb3')?.backgroundColor.trim(), 'var(--building-color3, pink)'); +assert.equal(new __helpers.CSSHelp(document).getStyle('.bb3')?.getPropVal('background-color', true), 'var(--building-color3,pink)'); ``` # --seed-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98e2.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98e2.md index 90319b83789..9a2b4c2c824 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98e2.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98e2.md @@ -14,13 +14,13 @@ Ora che hai eliminato i bug e gli edifici sono dei colori giusti, puoi rimuovere Dovresti rimuovere il fallback dal `background-color` di `.bb2`. ```js -assert.equal(new __helpers.CSSHelp(document).getStyle('.bb2')?.backgroundColor, 'var(--building-color2)'); +assert.equal(new __helpers.CSSHelp(document).getStyle('.bb2')?.getPropVal('background-color', true), 'var(--building-color2)'); ``` Dovresti rimuovere il fallback dal `background-color` di `.bb3`. ```js -assert.equal(new __helpers.CSSHelp(document).getStyle('.bb3')?.backgroundColor.trim(), 'var(--building-color3)'); +assert.equal(new __helpers.CSSHelp(document).getStyle('.bb3')?.getPropVal('background-color', true), 'var(--building-color3)'); ``` # --seed-- diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98eb.md b/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98eb.md index fedf1314309..495421eb2d0 100644 --- a/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98eb.md +++ b/curriculum/challenges/italian/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98eb.md @@ -14,37 +14,37 @@ Il profilo degli edifici si sta unendo. Imposta la proprietà `background-color` Dovresti dare a `.fb1` una proprietà `background-color` usando `--building-color4`. ```js -assert.equal(new __helpers.CSSHelp(document).getStyle('.fb1')?.backgroundColor.trim(), 'var(--building-color4)'); +assert.equal(new __helpers.CSSHelp(document).getStyle('.fb1')?.getPropVal('background-color', true), 'var(--building-color4)'); ``` Dovresti dare a `.fb2` una proprietà `background-color` usando `--building-color3`. ```js -assert.equal(new __helpers.CSSHelp(document).getStyle('.fb2')?.backgroundColor, 'var(--building-color3)'); +assert.equal(new __helpers.CSSHelp(document).getStyle('.fb2')?.getPropVal('background-color', true), 'var(--building-color3)'); ``` Dovresti dare a `.fb3` una proprietà `background-color` usando `--building-color1`. ```js -assert.equal(new __helpers.CSSHelp(document).getStyle('.fb3')?.backgroundColor, 'var(--building-color1)'); +assert.equal(new __helpers.CSSHelp(document).getStyle('.fb3')?.getPropVal('background-color', true), 'var(--building-color1)'); ``` Dovresti dare a `.fb4` una proprietà `background-color` usando `--building-color1`. ```js -assert.equal(new __helpers.CSSHelp(document).getStyle('.fb4')?.backgroundColor, 'var(--building-color1)'); +assert.equal(new __helpers.CSSHelp(document).getStyle('.fb4')?.getPropVal('background-color', true), 'var(--building-color1)'); ``` Dovresti dare a `.fb5` una proprietà `background-color` usando `--building-color2`. ```js -assert.equal(new __helpers.CSSHelp(document).getStyle('.fb5')?.backgroundColor, 'var(--building-color2)'); +assert.equal(new __helpers.CSSHelp(document).getStyle('.fb5')?.getPropVal('background-color', true), 'var(--building-color2)'); ``` Dovresti dare a `.fb6` una proprietà `background-color` usando `--building-color3`. ```js -assert.equal(new __helpers.CSSHelp(document).getStyle('.fb6')?.backgroundColor, 'var(--building-color3)'); +assert.equal(new __helpers.CSSHelp(document).getStyle('.fb6')?.getPropVal('background-color', true), 'var(--building-color3)'); ``` # --seed-- diff --git a/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-personal-portfolio-webpage.md b/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-personal-portfolio-webpage.md index fa174724ec0..ab563b5ea6f 100644 --- a/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-personal-portfolio-webpage.md +++ b/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-personal-portfolio-webpage.md @@ -8,7 +8,7 @@ dashedName: build-a-personal-portfolio-webpage # --description-- -**目標:** https://personal-portfolio.freecodecamp.rocks と同様の機能を持つアプリを構築します +**目標:** https://personal-portfolio.freecodecamp.rocks と似た機能を持つアプリを構築します **ユーザーストーリー:** diff --git a/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-product-landing-page.md b/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-product-landing-page.md index ecc15b51e90..be21a222f37 100644 --- a/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-product-landing-page.md +++ b/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-product-landing-page.md @@ -8,7 +8,7 @@ dashedName: build-a-product-landing-page # --description-- -**目標:** https://product-landing-page.freecodecamp.rocks と同様の機能を持つアプリを構築します +**目標:** https://product-landing-page.freecodecamp.rocks と似た機能を持つアプリを構築します **ユーザーストーリー:** diff --git a/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-survey-form.md b/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-survey-form.md index 2500340ebd9..859923bd29a 100644 --- a/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-survey-form.md +++ b/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-survey-form.md @@ -8,7 +8,7 @@ dashedName: build-a-survey-form # --description-- -**目標:** https://survey-form.freecodecamp.rocks と同様の機能を持つアプリを構築します +**目標:** https://survey-form.freecodecamp.rocks と似た機能を持つアプリを構築します **ユーザーストーリー:** diff --git a/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-technical-documentation-page.md b/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-technical-documentation-page.md index f924144a613..a473a2bc6f4 100644 --- a/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-technical-documentation-page.md +++ b/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-technical-documentation-page.md @@ -8,7 +8,7 @@ dashedName: build-a-technical-documentation-page # --description-- -**目標:** https://technical-documentation-page.freecodecamp.rocks と同様の機能を持つアプリを構築します +**目標:** https://technical-documentation-page.freecodecamp.rocks と似た機能を持つアプリを構築します **ユーザーストーリー:** diff --git a/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-tribute-page.md b/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-tribute-page.md index 1d6b1ae8bd3..96c57203b9d 100644 --- a/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-tribute-page.md +++ b/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-tribute-page.md @@ -8,7 +8,7 @@ dashedName: build-a-tribute-page # --description-- -**目標:** https://tribute-page.freecodecamp.rocks と同様の機能を持つアプリを構築します +**目標:** https://tribute-page.freecodecamp.rocks と似た機能を持つアプリを構築します **ユーザーストーリー:** diff --git a/curriculum/challenges/japanese/02-javascript-algorithms-and-data-structures/basic-javascript/return-early-pattern-for-functions.md b/curriculum/challenges/japanese/02-javascript-algorithms-and-data-structures/basic-javascript/return-early-pattern-for-functions.md index bb089b8be12..8c4ccecdfe4 100644 --- a/curriculum/challenges/japanese/02-javascript-algorithms-and-data-structures/basic-javascript/return-early-pattern-for-functions.md +++ b/curriculum/challenges/japanese/02-javascript-algorithms-and-data-structures/basic-javascript/return-early-pattern-for-functions.md @@ -29,7 +29,7 @@ myFun(); 関数 `abTest` を変更して、`a` または `b` が `0` より小さい場合に関数が `undefined` の値を返して直ちに終了するようにしてください。 **ヒント** -[`undefined` はキーワード](https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/basic-javascript/understanding-uninitialized-variables)であって、文字列ではないことに注意してください。 +`undefined` はキーワードであって、文字列ではないことに注意してください。 # --hints-- diff --git a/curriculum/challenges/japanese/02-javascript-algorithms-and-data-structures/basic-javascript/word-blanks.md b/curriculum/challenges/japanese/02-javascript-algorithms-and-data-structures/basic-javascript/word-blanks.md index cd371e1d28f..41e98df0d53 100644 --- a/curriculum/challenges/japanese/02-javascript-algorithms-and-data-structures/basic-javascript/word-blanks.md +++ b/curriculum/challenges/japanese/02-javascript-algorithms-and-data-structures/basic-javascript/word-blanks.md @@ -1,6 +1,6 @@ --- id: 56533eb9ac21ba0edf2244bb -title: Word Blanks +title: 文章穴埋め challengeType: 1 videoUrl: 'https://scrimba.com/c/caqn8zuP' forumTopicId: 18377 @@ -9,11 +9,9 @@ dashedName: word-blanks # --description-- -今回は、文字列の知識を活用して、"Word Blanks" という "Mad Libs" 形式の言葉遊びゲームを作っていきます。 「穴埋め」型の文章 (オプションでユーモアも添えて) を作成することになります。 +名詞、動詞、形容詞、副詞など、いくつかの単語が空欄となっている文章が提示されます。 そして、自由に選んだ言葉で空欄を埋めて、意味が通る文章を完成させます。 -"Mad Libs" ゲームでは、名詞、動詞、形容詞、副詞など、いくつかの単語が空欄となっている文章が提示されます。 そして、自由に選んだ言葉で空欄を埋めて、意味が通る文章を完成させます。 - -次の文章を考えてみましょう 。「It was really **\_\_\_\_**, and we **\_\_\_\_** ourselves **\_\_\_\_**」。 この文章は形容詞、動詞、副詞の 3 つが空欄になっており、好きな単語を入れて文章を完成させることができます。 そして、次のように完成した文章を変数に代入できます。 +次の文章を考えてみましょう 。「It was really **\_\_\_\_**, and we **\_\_\_\_** ourselves **\_\_\_\_**」。 この文章は形容詞、動詞、副詞の 3 つが空欄になっており、好きな単語を入れて文章を完成させることができます。 そして、次のように完成した文章を変数に代入します。 ```js const sentence = "It was really " + "hot" + ", and we " + "laughed" + " ourselves " + "silly" + "."; @@ -21,9 +19,9 @@ const sentence = "It was really " + "hot" + ", and we " + "laughed" + " ourselve # --instructions-- -このチャレンジでは、名詞、動詞、形容詞、副詞が提示されます。 提示された単語に合うように、自分の選んだ言葉を使用して文章を完成させてください。 +このチャレンジでは、名詞、動詞、形容詞、副詞が提示されます。 提示された単語と、自分の選んだ言葉を使用して文章を完成させてください。 -用意された変数 (`myNoun`、`myAdjective`、`myVerb`、`myAdverb`) を使用して新しい文字列を作成するために、文字列連結演算子 `+` を使用する必要があります。 その後、作成した文字列を `wordBlanks` 変数に代入します。 変数に代入した言葉を変更してはいけません。 +用意された変数 (`myNoun`、`myAdjective`、`myVerb`、`myAdverb`) を使用して新しい文字列を作成するために、文字列連結演算子 `+` を使用する必要があります。 そして、作成した文字列を `wordBlanks` 変数に代入します。 あらかじめ変数に代入されている単語を変更してはいけません。 文字列内のスペースにも気を付ける必要があります。最終的な文章ではすべての単語間にスペースが含まれるようにします。 結果が完全な文章になるようにしてください。 @@ -58,7 +56,7 @@ assert( ); ``` -`wordBlanks` には変数の `myNoun`、`myVerb`、`myAdjective`、`myAdverb` に割り当てられた単語がすべて含まれている必要があり、それらの間は単語以外の文字 (および、あなたが Mad Libs 的に追加した単語) で区切られる必要があります。 +`wordBlanks` には変数の `myNoun`、`myVerb`、`myAdjective`、`myAdverb` に割り当てられた単語がすべて含まれている必要があり、それらの間は単語以外の文字 (および、あなたが追加した単語) で区切られる必要があります。 ```js assert( diff --git a/curriculum/challenges/japanese/02-javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/caesars-cipher.md b/curriculum/challenges/japanese/02-javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/caesars-cipher.md index 1836c35256b..16614180446 100644 --- a/curriculum/challenges/japanese/02-javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/caesars-cipher.md +++ b/curriculum/challenges/japanese/02-javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/caesars-cipher.md @@ -10,9 +10,9 @@ dashedName: caesars-cipher 最もシンプルで広く知られている暗号の 1 つがシーザー暗号で、シフト暗号とも呼ばれています。 シフト暗号では、文字の意味が一定量ずつシフトされます。 -現代では、文字を 13 文字ずつシフトさせる [ROT13](https://www.freecodecamp.org/news/how-to-code-the-caesar-cipher-an-introduction-to-basic-encryption-3bf77b4e19f7/) という暗号がよく使用されます。 たとえば、`A ↔ N`、`B ↔ O` のようになります。 +現代では、文字を 13 文字ずつシフトさせる ROT13 という暗号がよく使われます。 たとえば、`A ↔ N`、`B ↔ O` のようになります。 -[ROT13](https://www.freecodecamp.org/news/how-to-code-the-caesar-cipher-an-introduction-to-basic-encryption-3bf77b4e19f7/) でエンコードされた文字列を入力として受け取り、デコードされた文字列を返す関数を作成してください。 +ROT13 でエンコードされた文字列を入力として受け取り、デコードされた文字列を返す関数を作成してください。 文字はすべて大文字にしてください。 アルファベット以外の文字 (スペース、句読点など) は、変換せず、そのまま渡してください。 diff --git a/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-25-5-clock.md b/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-25-5-clock.md index bb6b7135778..7524991590a 100644 --- a/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-25-5-clock.md +++ b/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-25-5-clock.md @@ -8,7 +8,7 @@ dashedName: build-a-25--5-clock # --description-- -**目標:** こちらに示したものと同様の機能を持つアプリを構築してください: +**目標:** こちらと似た機能を持つアプリを構築してください: https://codepen.io/freeCodeCamp/full/XpKrrW 下記のユーザーストーリーを満たして、すべてのテストに合格してください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のスタイルを加えましょう。 @@ -70,7 +70,7 @@ dashedName: build-a-25--5-clock **ユーザーストーリー 28:** ID が `reset` の要素がクリックされたとき、ID が `beep` の audio 要素の再生を停止して、最初まで巻き戻す必要があります。 -独自のペンを作成するために、こちらの CodePen テンプレートを使用し、`Save` をクリックして独自のプロジェクトを構築することができます。 または、下記の CDN リンクを使用して、使い慣れている環境でテストを実行することもできます: `https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js` +この CodePen テンプレートを使用して あなたのプロジェクトを構築することができます。`Save` をクリックすると、あなた用の pen を作成することができます。 または、下記の CDN リンクを使用して、使い慣れている環境でテストを実行することもできます: `https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js` 完了したら、すべてのテストに合格した作業中のプロジェクトの URL を送信してください。 diff --git a/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-drum-machine.md b/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-drum-machine.md index 547362fedf2..6137bc4056d 100644 --- a/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-drum-machine.md +++ b/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-drum-machine.md @@ -8,7 +8,7 @@ dashedName: build-a-drum-machine # --description-- -**目標:** こちらに示したものと同様の機能を持つアプリを構築してください: +**目標:** こちらと似た機能を持つアプリを構築してください: https://codepen.io/freeCodeCamp/full/MJyNMd 下記のユーザーストーリーを満たして、すべてのテストに合格してください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のスタイルを加えましょう。 @@ -28,7 +28,7 @@ dashedName: build-a-drum-machine **ユーザーストーリー 7:** `.drum-pad` がトリガーされると、関連するオーディオクリップを説明する文字列が、`#display` 要素の内側のテキストとして表示されます (文字列はそれぞれ一意にする必要があります)。 -独自のペンを作成するために、こちらの CodePen テンプレートを使用し、`Save` をクリックして独自のプロジェクトを構築することができます。 または、下記の CDN リンクを使用して、使い慣れている環境でテストを実行することもできます: `https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js` +この CodePen テンプレートを使用して あなたのプロジェクトを構築することができます。`Save` をクリックすると、あなた用の pen を作成することができます。 または、下記の CDN リンクを使用して、使い慣れている環境でテストを実行することもできます: `https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js` 完了したら、すべてのテストに合格した作業中のプロジェクトの URL を送信してください。 diff --git a/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-javascript-calculator.md b/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-javascript-calculator.md index 754bb1f7a2f..b8cfb9c620e 100644 --- a/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-javascript-calculator.md +++ b/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-javascript-calculator.md @@ -8,7 +8,7 @@ dashedName: build-a-javascript-calculator # --description-- -**目標:** こちらに示したものと同様の機能を持つアプリを構築してください: +**目標:** こちらと似た機能を持つアプリを構築してください: https://codepen.io/freeCodeCamp/full/wgGVVX 下記のユーザーストーリーを満たして、すべてのテストに合格してください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のスタイルを加えましょう。 @@ -51,7 +51,7 @@ dashedName: build-a-javascript-calculator - **即時実行ロジック:** `11.5` - **数式ロジック:** `32.5` -独自のペンを作成するために、こちらの CodePen テンプレートを使用し、`Save` をクリックして独自のプロジェクトを構築することができます。 または、下記の CDN リンクを使用して、使い慣れている環境でテストを実行することもできます: `https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js` +この CodePen テンプレートを使用して あなたのプロジェクトを構築することができます。`Save` をクリックすると、あなた用の pen を作成することができます。 または、下記の CDN リンクを使用して、使い慣れている環境でテストを実行することもできます: `https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js` 完了したら、すべてのテストに合格した作業中のプロジェクトの URL を送信してください。 diff --git a/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-markdown-previewer.md b/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-markdown-previewer.md index 8dc013ad64d..7e63130edfa 100644 --- a/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-markdown-previewer.md +++ b/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-markdown-previewer.md @@ -8,7 +8,7 @@ dashedName: build-a-markdown-previewer # --description-- -**目標:** こちらに示したものと同様の機能を持つアプリを構築してください: +**目標:** こちらと似た機能を持つアプリを構築してください: https://codepen.io/freeCodeCamp/full/GrZVVO 下記のユーザーストーリーを満たして、すべてのテストに合格してください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のスタイルを加えましょう。 @@ -28,7 +28,7 @@ dashedName: build-a-markdown-previewer **オプションボーナス (このテストに合格する必要はありません):** マークダウンプレビューアプリは、キャリッジリターンを解釈し、それらを `br` (改行) 要素としてレンダーします。 -独自のペンを作成するために、こちらの CodePen テンプレートを使用し、`Save` をクリックして独自のプロジェクトを構築することができます。 または、下記の CDN リンクを使用して、使い慣れている環境でテストを実行することもできます: `https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js` +この CodePen テンプレートを使用して あなたのプロジェクトを構築することができます。`Save` をクリックすると、あなた用の pen を作成することができます。 または、下記の CDN リンクを使用して、使い慣れている環境でテストを実行することもできます: `https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js` 完了したら、すべてのテストに合格した作業中のプロジェクトの URL を送信してください。 diff --git a/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-random-quote-machine.md b/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-random-quote-machine.md index ffbb0345f70..7da5603856f 100644 --- a/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-random-quote-machine.md +++ b/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-random-quote-machine.md @@ -8,7 +8,7 @@ dashedName: build-a-random-quote-machine # --description-- -**目標:** こちらに示したものと同様の機能を持つアプリを構築してください: +**目標:** こちらと似た機能を持つアプリを構築してください: https://codepen.io/freeCodeCamp/full/qRZeGZ 下記のユーザーストーリーを満たして、すべてのテストに合格してください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のスタイルを加えましょう。 @@ -36,7 +36,7 @@ dashedName: build-a-random-quote-machine **ユーザーストーリー 11:** `#quote-box` ラッパー要素は水平方向に中央寄せされます。 ブラウザのズームレベルを 100% にし、ページを最大化してテストしてください。 -独自のペンを作成するために、こちらの CodePen テンプレートを使用し、`Save` をクリックして独自のプロジェクトを構築することができます。 または、下記の CDN リンクを使用して、使い慣れている環境でテストを実行することもできます: `https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js` +この CodePen テンプレートを使用して あなたのプロジェクトを構築することができます。`Save` をクリックすると、あなた用の pen (CodePen 上の作品) を作成することができます。 または、下記の CDN リンクを使用して、使い慣れている環境でテストを実行することもできます: `https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js` 完了したら、すべてのテストに合格した作業中のプロジェクトの URL を送信してください。 diff --git a/curriculum/challenges/japanese/03-front-end-development-libraries/react-and-redux/moving-forward-from-here.md b/curriculum/challenges/japanese/03-front-end-development-libraries/react-and-redux/moving-forward-from-here.md index aaba580cd71..bb65a27aa34 100644 --- a/curriculum/challenges/japanese/03-front-end-development-libraries/react-and-redux/moving-forward-from-here.md +++ b/curriculum/challenges/japanese/03-front-end-development-libraries/react-and-redux/moving-forward-from-here.md @@ -10,7 +10,7 @@ dashedName: moving-forward-from-here おめでとうございます ! React と Redux のレッスンが終了しました。 次に進む前に、最後に重要なことを一つ説明しておきましょう。 通常はこのようなコードエディターで React アプリケーションを記述することはありません。 このチャレンジでは、皆さん自身のマシンで npm とファイルシステムを使用する場合にどのような構文になるかを少しだけ紹介します。 コードは、`import` ステートメントを使用している部分を除いて似たものになります (これらの import はチャレンジで提供したすべての依存関係を抽出します)。 npm については「npm でパッケージを管理する」セクションで詳しく説明します。 -最後に、React と Redux のコードを記述する際、通常はいくつかの設定が必要になります。 この設定はすぐに複雑になる可能性があります。 自分のマシンで試してみたい方は、「React アプリを作成する」で設定と準備を行ってください。 +最後に、React と Redux のコードを記述する際、通常はいくつかの設定が必要になります。 この設定はすぐに複雑になる可能性があります。 自分のマシンで試してみたい方は、Create React App というツールを利用すると簡単に設定を完了できます。 または、CodePen で JavaScript プリプロセッサーとして Babel を有効にし、React と ReactDOM を外部の JavaScript リソースとして追加し、そこで作業することもできます。 diff --git a/curriculum/challenges/japanese/03-front-end-development-libraries/react/set-state-with-this.setstate.md b/curriculum/challenges/japanese/03-front-end-development-libraries/react/set-state-with-this.setstate.md index ce17c807cef..4b665245807 100644 --- a/curriculum/challenges/japanese/03-front-end-development-libraries/react/set-state-with-this.setstate.md +++ b/curriculum/challenges/japanese/03-front-end-development-libraries/react/set-state-with-this.setstate.md @@ -16,7 +16,7 @@ this.setState({ }); ``` -React では `state` を直接変更しないことが前提となっています。代わりに、state が変更された場合は常に `this.setState()` を使用します。 また、React ではパフォーマンスを向上させるために複数の state の更新がバッチ処理されることがあります。 このため、`setState` メソッドによる state の更新が非同期になる可能性があります。 この問題を回避する方法として、`setState` メソッドの代わりとなる構文があります。 必要になることはめったにありませんが、覚えておくと役に立ちます。 詳細は [React のドキュメント](https://reactjs.org/docs/state-and-lifecycle.html#state-updates-may-be-asynchronous)を参照してください。 +React では `state` を直接変更しないことが前提となっています。代わりに、state が変更された場合は常に `this.setState()` を使用します。 また、React ではパフォーマンスを向上させるために複数の state の更新がバッチ処理されることがあります。 このため、`setState` メソッドによる state の更新が非同期になる可能性があります。 この問題を回避する方法として、`setState` メソッドの代わりとなる構文があります。 必要になることはめったにありませんが、覚えておくと役に立ちます。 詳細については freeCodeCamp の React に関する記事を参照してください。 # --instructions-- diff --git a/curriculum/challenges/japanese/03-front-end-development-libraries/react/use-array.map-to-dynamically-render-elements.md b/curriculum/challenges/japanese/03-front-end-development-libraries/react/use-array.map-to-dynamically-render-elements.md index d33e1d6f1b3..383b0a39bbd 100644 --- a/curriculum/challenges/japanese/03-front-end-development-libraries/react/use-array.map-to-dynamically-render-elements.md +++ b/curriculum/challenges/japanese/03-front-end-development-libraries/react/use-array.map-to-dynamically-render-elements.md @@ -16,7 +16,7 @@ dashedName: use-array-map-to-dynamically-render-elements コードエディターで、`MyToDoList` コンポーネントのほとんどが設定済みです。 制御されたフォームのチャレンジを完了しているのであれば、このコードの一部に見覚えがあると思います。 `textarea` と `button` があり、ユーザーの state を追跡するいくつかのメソッドがありますが、まだ何もページにレンダーされません。 -`constructor` の中で、`this.state` オブジェクトを作成し、2 つの状態を定義してください。1 つは `userInput` で、空の文字列として初期化してください。もう 1 つは `toDoList` で、空の配列として初期化してください。 次に、`items` 変数の隣の `render()` メソッドにあるコメントを削除してください。 その場所で、コンポーネントの内部状態に格納されている `toDoList` 配列全体をマップし、各アイテムの `li` を動的にレンダーしてください。 文字列 `eat, code, sleep, repeat` を `textarea` に入力してボタンをクリックし、何が起きるかを確かめてみてください。 +`constructor` の中で、`this.state` オブジェクトを作成し、2 つの状態を定義してください。1 つは `userInput` で、空の文字列として初期化してください。もう 1 つは `toDoList` で、空の配列として初期化してください。 次に、`render()` メソッドにある `items` 変数の隣の値 `null` を削除してください。 その場所で、コンポーネントの内部状態に格納されている `toDoList` 配列全体をマップし、各アイテムの `li` を動的にレンダーしてください。 文字列 `eat, code, sleep, repeat` を `textarea` に入力してボタンをクリックし、何が起きるかを確かめてみてください。 **注:** ご存知かもしれませんが、このようなマッピング操作によって作成される兄弟の子要素にはすべて、一意の `key` 属性を付ける必要があります。 心配はいりません。次のチャレンジでこのトピックを取り上げます。 diff --git a/curriculum/challenges/japanese/03-front-end-development-libraries/react/use-the-lifecycle-method-componentwillmount.md b/curriculum/challenges/japanese/03-front-end-development-libraries/react/use-the-lifecycle-method-componentwillmount.md index 50b6957a800..f24506309d6 100644 --- a/curriculum/challenges/japanese/03-front-end-development-libraries/react/use-the-lifecycle-method-componentwillmount.md +++ b/curriculum/challenges/japanese/03-front-end-development-libraries/react/use-the-lifecycle-method-componentwillmount.md @@ -10,7 +10,7 @@ dashedName: use-the-lifecycle-method-componentwillmount React コンポーネントには、コンポーネントのライフサイクル中に特定の時点でアクションを実行する機会を提供する、いくつかの特別なメソッドがあります。 これらはライフサイクルメソッドまたはライフサイクルフックと呼ばれ、特定の時点でコンポーネントをキャッチできます。 メソッドは、レンダー前、更新前、prop を受け取る前、アンマウント前などの時点で実行できます。 主なライフサイクルメソッドとしては、`componentWillMount()`、`componentDidMount()`、`shouldComponentUpdate()`、`componentDidUpdate()`、`componentWillUnmount()` があります。以降のレッスンでは、これらのライフサイクルメソッドの基本的な用例について説明します。 -**注:** ライフサイクルメソッド `componentWillMount` は、将来のバージョン 16.X で非推奨になり、バージョン 17 で削除される予定です [(情報元)](https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html)。 +**注:** ライフサイクルメソッド `componentWillMount` は、将来のバージョン 16.X で非推奨になり、バージョン 17 で削除される予定です 詳しくは こちらの記事 を参照してください。 # --instructions-- diff --git a/curriculum/challenges/japanese/10-coding-interview-prep/project-euler/problem-10-summation-of-primes.md b/curriculum/challenges/japanese/10-coding-interview-prep/project-euler/problem-10-summation-of-primes.md index 0c58724bbe6..fe8d4a23a63 100644 --- a/curriculum/challenges/japanese/10-coding-interview-prep/project-euler/problem-10-summation-of-primes.md +++ b/curriculum/challenges/japanese/10-coding-interview-prep/project-euler/problem-10-summation-of-primes.md @@ -60,22 +60,33 @@ primeSummation(2000000); # --solutions-- ```js -function primeSummation(n) { - if (n < 3) { return 0 }; - let nums = [0, 0, 2]; - for (let i = 3; i < n; i += 2){ - nums.push(i); - nums.push(0); - } - let sum = 2; - for (let i = 3; i < n; i += 2){ - if (nums[i] !== 0){ - sum += nums[i]; - for (let j = i*i; j < n; j += i){ - nums[j] = 0; +const NUM_PRIMES = 2000000; +const PRIME_SEIVE = Array(Math.floor((NUM_PRIMES-1)/2)).fill(true); +(function initPrimes(num) { + const upper = Math.floor((num - 1) / 2); + const sqrtUpper = Math.floor((Math.sqrt(num) - 1) / 2); + for (let i = 0; i <= sqrtUpper; i++) { + if (PRIME_SEIVE[i]) { + // Mark value in PRIMES array + const prime = 2 * i + 3; + // Mark all multiples of this number as false (not prime) + const primeSqaredIndex = 2 * i ** 2 + 6 * i + 3; + for (let j = primeSqaredIndex; j < upper; j += prime) { + PRIME_SEIVE[j] = false; } } } +})(NUM_PRIMES); + +function isOddNumberPrime(num) { + return PRIME_SEIVE[(num - 3) / 2]; +} + +function primeSummation(n) { + let sum = 2; + for (let i = 3; i < n; i += 2) { + if (isOddNumberPrime(i)) sum += i; + } return sum; } ``` diff --git a/curriculum/challenges/japanese/10-coding-interview-prep/project-euler/problem-47-distinct-primes-factors.md b/curriculum/challenges/japanese/10-coding-interview-prep/project-euler/problem-47-distinct-primes-factors.md index 7f19d526fb5..828b55d966b 100644 --- a/curriculum/challenges/japanese/10-coding-interview-prep/project-euler/problem-47-distinct-primes-factors.md +++ b/curriculum/challenges/japanese/10-coding-interview-prep/project-euler/problem-47-distinct-primes-factors.md @@ -68,13 +68,13 @@ distinctPrimeFactors(4, 4); ```js // Initalize factor count with seive -const NUMFACTORS = Array(150000).fill(0); +const NUMFACTORS = Array(135000).fill(0); (function initFactors(num) { for (let i = 2; i < num; i++) if (NUMFACTORS[i] === 0) for (let j = i; j < num; j += i) NUMFACTORS[j]++; -})(150000); +})(135000); function distinctPrimeFactors(targetNumPrimes, targetConsecutive) { let numConsecutive = 0; diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-personal-portfolio-webpage-project/build-a-personal-portfolio-webpage.md b/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-personal-portfolio-webpage-project/build-a-personal-portfolio-webpage.md index c47645c0b5a..cb19637989e 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-personal-portfolio-webpage-project/build-a-personal-portfolio-webpage.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-personal-portfolio-webpage-project/build-a-personal-portfolio-webpage.md @@ -8,7 +8,7 @@ dashedName: build-a-personal-portfolio-webpage # --description-- -**目標:** https://personal-portfolio.freecodecamp.rocks と同様の機能を持つアプリを構築します +**目標:** https://personal-portfolio.freecodecamp.rocks と似た機能を持つアプリを構築します **ユーザーストーリー:** diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-product-landing-page-project/build-a-product-landing-page.md b/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-product-landing-page-project/build-a-product-landing-page.md index 5c38e14dbdc..3b2c952daf9 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-product-landing-page-project/build-a-product-landing-page.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-product-landing-page-project/build-a-product-landing-page.md @@ -8,7 +8,7 @@ dashedName: build-a-product-landing-page # --description-- -**目標:** https://product-landing-page.freecodecamp.rocks と同様の機能を持つアプリを構築します +**目標:** https://product-landing-page.freecodecamp.rocks と似た機能を持つアプリを構築します **ユーザーストーリー:** diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-survey-form-project/build-a-survey-form.md b/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-survey-form-project/build-a-survey-form.md index 97592da123a..b51cc441693 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-survey-form-project/build-a-survey-form.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-survey-form-project/build-a-survey-form.md @@ -8,7 +8,7 @@ dashedName: build-a-survey-form # --description-- -**目標:** https://survey-form.freecodecamp.rocks と同様の機能を持つアプリを構築します +**目標:** https://survey-form.freecodecamp.rocks と似た機能を持つアプリを構築します **ユーザーストーリー:** diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-technical-documentation-page-project/build-a-technical-documentation-page.md b/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-technical-documentation-page-project/build-a-technical-documentation-page.md index 325c4d92ef1..77e65c0a089 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-technical-documentation-page-project/build-a-technical-documentation-page.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-technical-documentation-page-project/build-a-technical-documentation-page.md @@ -8,7 +8,7 @@ dashedName: build-a-technical-documentation-page # --description-- -**目標:** https://technical-documentation-page.freecodecamp.rocks と同様の機能を持つアプリを構築します +**目標:** https://technical-documentation-page.freecodecamp.rocks と似た機能を持つアプリを構築します **ユーザーストーリー:** diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-tribute-page-project/build-a-tribute-page.md b/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-tribute-page-project/build-a-tribute-page.md index d52f508f5c3..64150684bf5 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-tribute-page-project/build-a-tribute-page.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-tribute-page-project/build-a-tribute-page.md @@ -8,7 +8,7 @@ dashedName: build-a-tribute-page # --description-- -**目標:** https://tribute-page.freecodecamp.rocks と同様の機能を持つアプリを構築します +**目標:** https://tribute-page.freecodecamp.rocks と似た機能を持つアプリを構築します **ユーザーストーリー:** diff --git a/curriculum/challenges/portuguese/05-back-end-development-and-apis/mongodb-and-mongoose/install-and-set-up-mongoose.md b/curriculum/challenges/portuguese/05-back-end-development-and-apis/mongodb-and-mongoose/install-and-set-up-mongoose.md index 8b8616b6662..34b264085cc 100644 --- a/curriculum/challenges/portuguese/05-back-end-development-and-apis/mongodb-and-mongoose/install-and-set-up-mongoose.md +++ b/curriculum/challenges/portuguese/05-back-end-development-and-apis/mongodb-and-mongoose/install-and-set-up-mongoose.md @@ -22,7 +22,11 @@ Siga SECRETS para adicionar a variável. Não circule os valores com aspas ao usar a aba SECRETS. + +Quando terminar, conecte-se ao banco de dados utilizando a seguinte sintaxe: ```js mongoose.connect(, { useNewUrlParser: true, useUnifiedTopology: true }); diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-10-summation-of-primes.md b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-10-summation-of-primes.md index 6b4450a302f..be3fd40572c 100644 --- a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-10-summation-of-primes.md +++ b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-10-summation-of-primes.md @@ -60,22 +60,33 @@ primeSummation(2000000); # --solutions-- ```js -function primeSummation(n) { - if (n < 3) { return 0 }; - let nums = [0, 0, 2]; - for (let i = 3; i < n; i += 2){ - nums.push(i); - nums.push(0); - } - let sum = 2; - for (let i = 3; i < n; i += 2){ - if (nums[i] !== 0){ - sum += nums[i]; - for (let j = i*i; j < n; j += i){ - nums[j] = 0; +const NUM_PRIMES = 2000000; +const PRIME_SEIVE = Array(Math.floor((NUM_PRIMES-1)/2)).fill(true); +(function initPrimes(num) { + const upper = Math.floor((num - 1) / 2); + const sqrtUpper = Math.floor((Math.sqrt(num) - 1) / 2); + for (let i = 0; i <= sqrtUpper; i++) { + if (PRIME_SEIVE[i]) { + // Mark value in PRIMES array + const prime = 2 * i + 3; + // Mark all multiples of this number as false (not prime) + const primeSqaredIndex = 2 * i ** 2 + 6 * i + 3; + for (let j = primeSqaredIndex; j < upper; j += prime) { + PRIME_SEIVE[j] = false; } } } +})(NUM_PRIMES); + +function isOddNumberPrime(num) { + return PRIME_SEIVE[(num - 3) / 2]; +} + +function primeSummation(n) { + let sum = 2; + for (let i = 3; i < n; i += 2) { + if (isOddNumberPrime(i)) sum += i; + } return sum; } ``` diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-128-hexagonal-tile-differences.md b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-128-hexagonal-tile-differences.md index 4d8655b4841..ee97523a343 100644 --- a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-128-hexagonal-tile-differences.md +++ b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-128-hexagonal-tile-differences.md @@ -28,10 +28,16 @@ Encontre o 2000º bloco desta sequência. # --hints-- -`hexagonalTile()` deve retornar `14516824220`. +`hexagonalTile(10)` deve retornar `271`. ```js -assert.strictEqual(hexagonalTile(), 14516824220); +assert.strictEqual(hexagonalTile(10), 271); +``` + +`hexagonalTile(2000)` deve retornar `14516824220`. + +```js +assert.strictEqual(hexagonalTile(2000), 14516824220); ``` # --seed-- @@ -39,16 +45,62 @@ assert.strictEqual(hexagonalTile(), 14516824220); ## --seed-contents-- ```js -function hexagonalTile() { +function hexagonalTile(tileIndex) { return true; } -hexagonalTile(); +hexagonalTile(10); ``` # --solutions-- ```js -// solution required +const NUM_PRIMES = 840000; +const PRIME_SEIVE = Array(Math.floor((NUM_PRIMES-1)/2)).fill(true); +(function initPrimes(num) { + const upper = Math.floor((num - 1) / 2); + const sqrtUpper = Math.floor((Math.sqrt(num) - 1) / 2); + for (let i = 0; i <= sqrtUpper; i++) { + if (PRIME_SEIVE[i]) { + // Mark value in PRIMES array + const prime = 2 * i + 3; + // Mark all multiples of this number as false (not prime) + const primeSqaredIndex = 2 * i ** 2 + 6 * i + 3; + for (let j = primeSqaredIndex; j < upper; j += prime) { + PRIME_SEIVE[j] = false; + } + } + } +})(NUM_PRIMES); + +function isPrime(num) { + if (num === 2) return true; + else if (num % 2 === 0) return false + else return PRIME_SEIVE[(num - 3) / 2]; +} + +function hexagonalTile(tileIndex) { + let count = 1; + let n = 1; + let number = 0; + + while (count < tileIndex) { + if (isPrime(6*n - 1) && + isPrime(6*n + 1) && + isPrime(12*n + 5)) { + number = 3*n*n - 3*n + 2; + count++; + if (count >= tileIndex) break; + } + if (isPrime(6*n + 5) && + isPrime(6*n - 1) && + isPrime(12*n - 7) && n != 1) { + number = 3*n*n + 3*n + 1; + count++; + } + n++; + } + return number; +} ``` diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-47-distinct-primes-factors.md b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-47-distinct-primes-factors.md index 84a8cfb8dfb..ec2917fba0d 100644 --- a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-47-distinct-primes-factors.md +++ b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-47-distinct-primes-factors.md @@ -68,13 +68,13 @@ distinctPrimeFactors(4, 4); ```js // Initalize factor count with seive -const NUMFACTORS = Array(150000).fill(0); +const NUMFACTORS = Array(135000).fill(0); (function initFactors(num) { for (let i = 2; i < num; i++) if (NUMFACTORS[i] === 0) for (let j = i; j < num; j += i) NUMFACTORS[j]++; -})(150000); +})(135000); function distinctPrimeFactors(targetNumPrimes, targetConsecutive) { let numConsecutive = 0; diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/hofstadter-figure-figure-sequences.md b/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/hofstadter-figure-figure-sequences.md index c4f950845ea..b3558a729c0 100644 --- a/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/hofstadter-figure-figure-sequences.md +++ b/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/hofstadter-figure-figure-sequences.md @@ -8,36 +8,28 @@ dashedName: hofstadter-figure-figure-sequences # --description-- -Estas duas sequências de inteiros positivos são definidas como: +As sequências de figura-figura de Hofstadter $R_n$ e $S_n$ são dadas por -$R(1)=1\\ ;\\ S(1)=2 \\\\R(n)=R(n-1)+S(n-1), \\quad n>1.$ +$R_1 = 1\\ ;\\ S_1 = 2 \\\\R_n = R_{n-1} + S_{n-1}, \\quad n>1.$ -A sequência $S(n)$ está definida ainda mais como a sequência de números inteiros positivos não presentes em $R(n)$. - -A sequência $R$ inicia assim: +Especificamente, a sequência $R_n$ contém os valores
1, 3, 7, 12, 18, ...
-A sequência $S$ inicia assim: +e a sequência $S_n$ contém os valores
2, 4, 5, 6, 8, ...
+A sequência $R_n$ é definida pela relação de recorrência $R_n = R_{n-1} + S_{n-1}$, enquanto $S_n$ é definida como a sequência de números inteiros positivos não incluídos na sequência $R_n$. + # --instructions-- -Crie duas funções chamadas `ffr` e `ffs` que, ao receber `n`, retornam `R(n)` ou `S(n)`, respectivamente. (Observe que R(1) = 1 e S(1) = 2 para evitar erros de "fora por um"). +Crie duas funções, chamadas `ffr` e `ffs` que retornem `R(n)` ou `S(n)`, respectivamente, para qualquer índice `n`. Observe que as sequências de figura-figura de Hofstadter são de índice 1, com $R_1 = 1$ e $S_1 = 2$. Nenhum valor máximo para `n` deve ser assumido. -**Referências** +**Referências**

Rosetta: sequências de figura-figura de Hofstadter

. - # --hints-- @@ -53,13 +45,13 @@ assert(typeof ffr === 'function'); assert(typeof ffs === 'function'); ``` -`ffr` deve retornar um inteiro. +`ffr` deve retornar um número inteiro. ```js assert(Number.isInteger(ffr(1))); ``` -`ffs` deve retornar um inteiro. +`ffs` deve retornar um número inteiro. ```js assert(Number.isInteger(ffs(1))); diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148f693e0728f77c87f3020.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148f693e0728f77c87f3020.md index ba60f7bc86d..f4ed6fdb789 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148f693e0728f77c87f3020.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148f693e0728f77c87f3020.md @@ -7,7 +7,7 @@ dashedName: step-79 # --description-- -Crie uma terceira `@media` query para `only screen` com uma `max-width` de `550px`. Dentro dele, crie um seletor `.hero-title` com `font-size` definido como `6rem`, um seletor `.hero-subtitle, .author, .quote, .list-header` com `font-size` definido como `1.8rem`, um seletor `.social-icons` com `font-size` definido como `2rem` e um seletor `.text` com `font-size` definido como `1.6rem`. +Crie uma terceira `@media` query para `only screen` com uma `max-width` de `550px`. Dentro dele, crie um seletor `.hero-title` com `font-size` definido como `6rem`, um seletor `.hero-subtitle, .author, .quote, .list-title` com `font-size` definido como `1.8rem`, um seletor `.social-icons` com `font-size` definido como `2rem` e um seletor `.text` com `font-size` definido como `1.6rem`. # --hints-- @@ -17,11 +17,11 @@ Você deve ter uma nova `@media` query para `only screen` com uma `max-width` de assert(new __helpers.CSSHelp(document).getCSSRules('media')?.[2]?.media?.mediaText === 'only screen and (max-width: 550px)'); ``` -A nova regra `@media` deve ter um seletor `.hero-title`, um seletor `.hero-subtitle, .author, .quote, .list-header` , um seletor `.social-icons` e um seletor `.text`. Esses seletores devem estar nesta ordem. +A nova regra `@media` deve ter um seletor `.hero-title`, um seletor `.hero-subtitle, .author, .quote, .list-title`, um seletor `.social-icons` e um seletor `.text`. Esses seletores devem estar nesta ordem. ```js assert(new __helpers.CSSHelp(document).getCSSRules('media')?.[2]?.cssRules?.[0]?.selectorText === '.hero-title'); -assert(new __helpers.CSSHelp(document).getCSSRules('media')?.[2]?.cssRules?.[1]?.selectorText === '.hero-subtitle, .author, .quote, .list-header'); +assert(new __helpers.CSSHelp(document).getCSSRules('media')?.[2]?.cssRules?.[1]?.selectorText === '.hero-subtitle, .author, .quote, .list-title'); assert(new __helpers.CSSHelp(document).getCSSRules('media')?.[2]?.cssRules?.[2]?.selectorText === '.social-icons'); assert(new __helpers.CSSHelp(document).getCSSRules('media')?.[2]?.cssRules?.[3]?.selectorText === '.text'); ``` @@ -32,7 +32,7 @@ O seletor `.hero-title` deve ter a `font-size` definida como `6rem`. assert(new __helpers.CSSHelp(document).getCSSRules('media')?.[2]?.cssRules?.[0]?.style?.fontSize === '6rem'); ``` -O seletor `.hero-subtitle, .author, .quote, .list-header` deve ter a `font-size` definida como `1.8rem`. +O seletor `.hero-subtitle, .author, .quote, .list-title` deve ter a `font-size` definida como `1.8rem`. ```js assert(new __helpers.CSSHelp(document).getCSSRules('media')?.[2]?.cssRules?.[1]?.style?.fontSize === '1.8rem'); diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148f6f7d8914c78e93136ca.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148f6f7d8914c78e93136ca.md index aeb35bd0abf..587663b4402 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148f6f7d8914c78e93136ca.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148f6f7d8914c78e93136ca.md @@ -387,7 +387,7 @@ hr { .hero-subtitle, .author, .quote, - .list-header { + .list-title { font-size: 1.8rem; } @@ -759,7 +759,7 @@ hr { .hero-subtitle, .author, .quote, - .list-header { + .list-title { font-size: 1.8rem; } diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98d7.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98d7.md index fff8d13dccc..634a185c137 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98d7.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98d7.md @@ -20,7 +20,7 @@ assert.exists(new __helpers.CSSHelp(document).getStyle('.bb1a')?.backgroundColor Você deve usar `var(--building-color1)` para definir a `background-color` do elemento `.bb1a`. ```js -assert.equal(new __helpers.CSSHelp(document).getStyle('.bb1a')?.backgroundColor.trim(), 'var(--building-color1)'); +assert.equal(new __helpers.CSSHelp(document).getStyle('.bb1a')?.getPropVal('background-color', true), 'var(--building-color1)'); ``` # --seed-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98d8.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98d8.md index dcc0931e1f4..c97820f2118 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98d8.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98d8.md @@ -20,7 +20,7 @@ assert.exists(new __helpers.CSSHelp(document).getStyle('.bb1b')?.backgroundColor Você deve usar `var(--building-color1)` para definir a `background-color` do elemento `.bb1b`. ```js -assert.equal(new __helpers.CSSHelp(document).getStyle('.bb1b')?.backgroundColor.trim(), 'var(--building-color1)'); +assert.equal(new __helpers.CSSHelp(document).getStyle('.bb1b')?.getPropVal('background-color', true), 'var(--building-color1)'); ``` A `background-color` do elemento `bb1c` deve ser definida. @@ -32,7 +32,7 @@ assert.exists(new __helpers.CSSHelp(document).getStyle('.bb1c')?.backgroundColor Você deve usar `var(--building-color1)` para definir a `background-color` do elemento `.bb1c`. ```js -assert.equal(new __helpers.CSSHelp(document).getStyle('.bb1c')?.backgroundColor.trim(), 'var(--building-color1)'); +assert.equal(new __helpers.CSSHelp(document).getStyle('.bb1c')?.getPropVal('background-color', true), 'var(--building-color1)'); ``` A `background-color` do elemento `bb1d` deve ser definida. @@ -44,7 +44,7 @@ assert.exists(new __helpers.CSSHelp(document).getStyle('.bb1d')?.backgroundColor Você deve usar `var(--building-color1)` para definir a `background-color` do elemento `.bb1d`. ```js -assert.equal(new __helpers.CSSHelp(document).getStyle('.bb1d')?.backgroundColor.trim(), 'var(--building-color1)'); +assert.equal(new __helpers.CSSHelp(document).getStyle('.bb1d')?.getPropVal('background-color', true), 'var(--building-color1)'); ``` # --seed-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98de.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98de.md index de9920518c7..970146cefc0 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98de.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98de.md @@ -32,7 +32,7 @@ assert.exists(new __helpers.CSSHelp(document).getStyle('.bb2')?.backgroundColor) Você deve definir a `background-color` usando a variável `--building-color2`. ```js -assert.equal(new __helpers.CSSHelp(document).getStyle('.bb2')?.backgroundColor.trim(), 'var(--building-color2)'); +assert.equal(new __helpers.CSSHelp(document).getStyle('.bb2')?.getPropVal('background-color', true), 'var(--building-color2)'); ``` # --seed-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98df.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98df.md index 7e371ef32d7..ac7735abc2e 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98df.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98df.md @@ -14,7 +14,7 @@ Hmm, eu não sei porque isso não funcionou. Você pode adicionar um valor subst Você deve adicionar um valor substituto de `green` na propriedade `background-color`. ```js -assert.equal(new __helpers.CSSHelp(document).getStyle('.bb2')?.backgroundColor.trim(), 'var(--building-color2, green)'); +assert.equal(new __helpers.CSSHelp(document).getStyle('.bb2')?.getPropVal('background-color', true), 'var(--building-color2,green)'); ``` # --seed-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98e0.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98e0.md index 7dcf6ee7257..c2761479d87 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98e0.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98e0.md @@ -32,7 +32,7 @@ assert.exists(new __helpers.CSSHelp(document).getStyle('.bb3')?.backgroundColor) Você deve definir a `background-color` usando a variável `--building-color3` com um valor substituto de `pink`. ```js -assert.equal(new __helpers.CSSHelp(document).getStyle('.bb3')?.backgroundColor.trim(), 'var(--building-color3, pink)'); +assert.equal(new __helpers.CSSHelp(document).getStyle('.bb3')?.getPropVal('background-color', true), 'var(--building-color3,pink)'); ``` # --seed-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98e2.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98e2.md index eeaedea617d..26656ee3676 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98e2.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98e2.md @@ -14,13 +14,13 @@ Agora que você resolveu os erros e os prédios estão com a cor correta, você Você deve remover os valores alternativos no `background-color` de `.bb2`. ```js -assert.equal(new __helpers.CSSHelp(document).getStyle('.bb2')?.backgroundColor, 'var(--building-color2)'); +assert.equal(new __helpers.CSSHelp(document).getStyle('.bb2')?.getPropVal('background-color', true), 'var(--building-color2)'); ``` Você deve remover os valores alternativos no `background-color` de `.bb3`. ```js -assert.equal(new __helpers.CSSHelp(document).getStyle('.bb3')?.backgroundColor.trim(), 'var(--building-color3)'); +assert.equal(new __helpers.CSSHelp(document).getStyle('.bb3')?.getPropVal('background-color', true), 'var(--building-color3)'); ``` # --seed-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98eb.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98eb.md index bfa2c2174ef..d4c04bff432 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98eb.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98eb.md @@ -14,37 +14,37 @@ O horizonte está quase pronto. Preencha a propriedade `background-color` dos ed Você deve dar a `.fb1` um `background-color` usando `--building-color4`. ```js -assert.equal(new __helpers.CSSHelp(document).getStyle('.fb1')?.backgroundColor.trim(), 'var(--building-color4)'); +assert.equal(new __helpers.CSSHelp(document).getStyle('.fb1')?.getPropVal('background-color', true), 'var(--building-color4)'); ``` Você deve dar a `.fb2` um `background-color` usando `--building-color3`. ```js -assert.equal(new __helpers.CSSHelp(document).getStyle('.fb2')?.backgroundColor, 'var(--building-color3)'); +assert.equal(new __helpers.CSSHelp(document).getStyle('.fb2')?.getPropVal('background-color', true), 'var(--building-color3)'); ``` Você deve dar a `.fb3` um `background-color` usando `--building-color1`. ```js -assert.equal(new __helpers.CSSHelp(document).getStyle('.fb3')?.backgroundColor, 'var(--building-color1)'); +assert.equal(new __helpers.CSSHelp(document).getStyle('.fb3')?.getPropVal('background-color', true), 'var(--building-color1)'); ``` Você deve dar a `.fb4` um `background-color` usando `--building-color1`. ```js -assert.equal(new __helpers.CSSHelp(document).getStyle('.fb4')?.backgroundColor, 'var(--building-color1)'); +assert.equal(new __helpers.CSSHelp(document).getStyle('.fb4')?.getPropVal('background-color', true), 'var(--building-color1)'); ``` Você deve dar a `.fb5` um `background-color` usando`--building-color2`. ```js -assert.equal(new __helpers.CSSHelp(document).getStyle('.fb5')?.backgroundColor, 'var(--building-color2)'); +assert.equal(new __helpers.CSSHelp(document).getStyle('.fb5')?.getPropVal('background-color', true), 'var(--building-color2)'); ``` Você deve dar a `.fb6` um `background-color` usando `--building-color3`. ```js -assert.equal(new __helpers.CSSHelp(document).getStyle('.fb6')?.backgroundColor, 'var(--building-color3)'); +assert.equal(new __helpers.CSSHelp(document).getStyle('.fb6')?.getPropVal('background-color', true), 'var(--building-color3)'); ``` # --seed-- diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804dc.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804dc.md index 6e26edaac5c..905c9e68b38 100644 --- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804dc.md +++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804dc.md @@ -72,12 +72,12 @@ const radioInputElem = $('input')[0]; assert(!radioInputElem.previousSibling.nodeValue.match(/Indoor/i)); ``` -O texto `Indoor` deve estar localizado diretamente à direita do seu botão `radio`. Certifique-se de que haja um espaço entre o elemento e o texto. Você omitiu o texto ou tem um erro de digitação. +O texto `Indoor` deve estar localizado diretamente à direita do seu botão `radio`. Você omitiu o texto ou tem um erro de digitação. ```js const radioInputElem = $('input')[0]; assert( - radioInputElem.nextSibling.nodeValue.replace(/\s+/g, ' ').match(/ Indoor/i) + radioInputElem.nextSibling.nodeValue.replace(/\s+/g, ' ').match(/Indoor/i) ); ``` diff --git a/curriculum/challenges/ukrainian/10-coding-interview-prep/project-euler/problem-10-summation-of-primes.md b/curriculum/challenges/ukrainian/10-coding-interview-prep/project-euler/problem-10-summation-of-primes.md index 511333a5542..5cc346a57c6 100644 --- a/curriculum/challenges/ukrainian/10-coding-interview-prep/project-euler/problem-10-summation-of-primes.md +++ b/curriculum/challenges/ukrainian/10-coding-interview-prep/project-euler/problem-10-summation-of-primes.md @@ -60,22 +60,33 @@ primeSummation(2000000); # --solutions-- ```js -function primeSummation(n) { - if (n < 3) { return 0 }; - let nums = [0, 0, 2]; - for (let i = 3; i < n; i += 2){ - nums.push(i); - nums.push(0); - } - let sum = 2; - for (let i = 3; i < n; i += 2){ - if (nums[i] !== 0){ - sum += nums[i]; - for (let j = i*i; j < n; j += i){ - nums[j] = 0; +const NUM_PRIMES = 2000000; +const PRIME_SEIVE = Array(Math.floor((NUM_PRIMES-1)/2)).fill(true); +(function initPrimes(num) { + const upper = Math.floor((num - 1) / 2); + const sqrtUpper = Math.floor((Math.sqrt(num) - 1) / 2); + for (let i = 0; i <= sqrtUpper; i++) { + if (PRIME_SEIVE[i]) { + // Mark value in PRIMES array + const prime = 2 * i + 3; + // Mark all multiples of this number as false (not prime) + const primeSqaredIndex = 2 * i ** 2 + 6 * i + 3; + for (let j = primeSqaredIndex; j < upper; j += prime) { + PRIME_SEIVE[j] = false; } } } +})(NUM_PRIMES); + +function isOddNumberPrime(num) { + return PRIME_SEIVE[(num - 3) / 2]; +} + +function primeSummation(n) { + let sum = 2; + for (let i = 3; i < n; i += 2) { + if (isOddNumberPrime(i)) sum += i; + } return sum; } ``` diff --git a/curriculum/challenges/ukrainian/10-coding-interview-prep/project-euler/problem-47-distinct-primes-factors.md b/curriculum/challenges/ukrainian/10-coding-interview-prep/project-euler/problem-47-distinct-primes-factors.md index 5404f345299..a3f1ec3ab3e 100644 --- a/curriculum/challenges/ukrainian/10-coding-interview-prep/project-euler/problem-47-distinct-primes-factors.md +++ b/curriculum/challenges/ukrainian/10-coding-interview-prep/project-euler/problem-47-distinct-primes-factors.md @@ -68,13 +68,13 @@ distinctPrimeFactors(4, 4); ```js // Initalize factor count with seive -const NUMFACTORS = Array(150000).fill(0); +const NUMFACTORS = Array(135000).fill(0); (function initFactors(num) { for (let i = 2; i < num; i++) if (NUMFACTORS[i] === 0) for (let j = i; j < num; j += i) NUMFACTORS[j]++; -})(150000); +})(135000); function distinctPrimeFactors(targetNumPrimes, targetConsecutive) { let numConsecutive = 0;