Module ā§Ē ¡ if, switch āĻāϰ loop
āĻĒā§āϰ⧠program: FizzBuzz āĻĨā§āĻā§ prime sieve
āĻāĻ lesson-āĻ āϝāĻž āĻļāĻŋāĻāĻŦā§
- Fixed starter-āĻāϰ āĻāĻĒāϰ āϏāĻžāϤāĻāĻž āĻĒā§āϰ⧠program āϞāĻŋāĻāϤ⧠āĻĒāĻžāϰāĻŦā§, FizzBuzz-āĻāϰ āĻāĻāĻāĻž āϰā§āĻĒ āĻĨā§āĻā§ prime sieve āĻĒāϰā§āϝāύā§āϤ, āĻĒā§āϰāϤāĻŋāĻāĻž āϤāĻžāϰ āĻāϏāϞ output-āϏāĻšāĨ¤
- āĻŦā§āĻāĻŋāϝāĻŧā§ āĻŦāϞāϤ⧠āĻĒāĻžāϰāĻŦā§ āĻāĻāĻāĻž
ifchain-āĻ āĻā§āĻĄāĻŧāĻž test-āĻāĻž āĻā§āύ āϏāĻŦāĻžāϰ āĻāĻā§ āĻŦāϏā§, āĻāϰ prime check āĻā§āύ āĻŦāϰā§āĻāĻŽā§āϞ⧠āĻāĻŋāϝāĻŧā§ āĻĨāĻžāĻŽāϤ⧠āĻĒāĻžāϰā§āĨ¤ - Input-āĻāϰ āĻāĻĒāϰ āĻāĻ pass-āĻāĻ āĻāĻāĻāĻž āĻāϞāϤāĻŋ āĻāϤā§āϤāϰ āϰāĻžāĻāϤ⧠āĻĒāĻžāϰāĻŦā§, āĻĒā§āϰāϤāĻŋāĻāĻž value āĻāĻŽāύ āĻāĻžāϝāĻŧāĻāĻž āĻĨā§āĻā§ āĻļā§āϰ⧠āĻāϰ⧠āϝāĻžāϤ⧠āĻĒā§āϰāĻĨāĻŽ item-āĻāĻž āϧā§āĻāĻāĻž āĻĻāĻŋāϤ⧠āύāĻž āĻĒāĻžāϰā§āĨ¤
āĻ
āύā§āĻ junior developer interview āĻāĻāĻ āĻļā§āϰ⧠āĻšāϝāĻŧ āĻāĻāĻ āĻā§āĻā§āĻ āĻāĻžāĻ āĻĻāĻŋāϝāĻŧā§āĨ¤ 1 āĻĨā§āĻā§ āĻā§āύāϤ⧠āĻĨāĻžāĻā§; 3-āĻāϰ āĻā§āĻŖāĻŋāϤāĻ āĻšāϞ⧠āĻŦāϞ⧠"Fizz", 5-āĻāϰ āĻā§āĻŖāĻŋāϤāĻ āĻšāϞ⧠"Buzz", āĻĻā§āĻā§āϰāĻ āĻšāϞ⧠"FizzBuzz"āĨ¤ āĻāϰ āύāĻžāĻŽ FizzBuzz, āĻāϰ āĻāĻāĻž āĻ
āĻā§āĻā§āϰ āĻĒāϰā§āĻā§āώāĻž āύāĻžāĨ¤ āĻāĻāĻž āĻĻā§āĻā§ āϤā§āĻŽāĻŋ āĻāĻāĻāĻž loop-āĻāϰ āĻāĻŋāϤāϰ⧠āĻāĻāĻāĻž if āĻŦāϏāĻŋāϝāĻŧā§ āĻā§āϰāĻŽāĻāĻž āĻ āĻŋāĻ āϰāĻžāĻāϤ⧠āĻĒāĻžāϰ⧠āĻāĻŋāύāĻžāĨ¤ āĻāĻ lesson āĻāĻžāĻāĻāĻž āϏā§āĻāĻžāĻŦā§ āĻāϰā§, āϤāĻžāϰāĻĒāϰ āĻāϰāĻ āĻāϝāĻŧāĻāĻž program āĻŦāĻžāύāĻžāϝāĻŧ, āĻāĻāĻĻāĻŽ āϏā§āĻ āĻĒāϰā§āϝāύā§āϤ āϝā§āĻā§āϞ⧠āĻāĻāĻāύ āĻāĻžāĻā§āϰ programmer āϞā§āĻā§āĨ¤
āϏāĻžāϤāĻāĻž program-āĻāϰ āĻāĻāĻ āĻāĻĄāĻŧāύ
āĻāĻāĻžāύā§āϰ āĻĒā§āϰāϤāĻŋāĻāĻž program-āĻ āĻāĻžāϰāĻāĻž āϧāĻžāĻĒāĨ¤ Starter-āĻāϰ next() āĻāϰ nextInt() āĻĻāĻŋāϝāĻŧā§ āĻĒāĻĄāĻŧā§, input-āĻāϰ āĻāĻĒāϰ loop āĻāĻžāϞāĻžāϝāĻŧ, āĻĒā§āϰāϤāĻŋāĻāĻž value āύāĻŋāϝāĻŧā§ āĻāĻŋāĻā§ āĻāĻāĻāĻž āϏāĻŋāĻĻā§āϧāĻžāύā§āϤ āύā§āϝāĻŧ, āĻāϰ out-āĻ āĻāĻāĻāĻž āϞāĻžāĻāύ push āĻāϰā§āĨ¤ Starter-āĻāϰ āĻļā§āώ āϞāĻžāĻāύ āϏāĻŦāĻāĻŋāĻā§ āĻāĻāϏāĻžāĻĨā§ print āĻāϰā§āĨ¤ Module 1-āĻ āĻĻā§āĻāĻāĻž loop-āĻāϰ āĻāĻĄāĻŧāύ āĻĻā§āĻā§āĻāĻŋāϞā§, "āϝā§āĻŽāύ āĻāĻā§ āϤā§āĻŽāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§" āĻŦāϞā§; lesson 01 āĻāϰ 02 āϏā§āĻā§āϞ⧠āĻŦā§āĻāĻŋāϝāĻŧā§ āĻĻāĻŋāϝāĻŧā§āĻā§āĨ¤ āĻāĻ program-āĻā§āϞ⧠āĻĻā§āĻā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĨ¤
Input āĻĒāĻĄāĻŧāĻžāϰ āĻĻā§āĻ āĻāĻĒāĻžāϝāĻŧ
const n = nextInt();
for (let i = 0; i < n; i++) { ...read one value... }
let token = next();
while (token !== undefined) {
...use token...
token = next();
}
forloop āĻāĻžāĻā§ āϤāĻāύ, āϝāĻāύ input āĻŦāϞ⧠āĻĻā§āϝāĻŧ āĻāϝāĻŧāĻāĻž value āĻāϏāĻŦā§: "the first line holds n"āĨ¤whileloop āĻāĻžāĻā§ āϤāĻāύ, āϝāĻāύ input āĻļā§āώ āύāĻž āĻšāĻāϝāĻŧāĻž āĻĒāϰā§āϝāύā§āϤ āĻāϞā§āĨ¤ Token āĻĢā§āϰāĻŋāϝāĻŧā§ āĻā§āϞā§next()āĻĢā§āϰāϤ āĻĻā§āϝāĻŧundefinedāĨ¤breakāϝā§āĻā§āύ⧠loop āĻĨā§āĻā§ āϏāĻžāĻĨā§ āϏāĻžāĻĨā§ āĻŦā§āϰ āĻāϰ⧠āĻĻā§āϝāĻŧ, āĻāϰcontinueāϏā§āĻāĻž āĻĒāϰā§āϰ pass-āĻ āĻāϞ⧠āϝāĻžāϝāĻŧāĨ¤ āĻĻā§āĻā§āĻ āĻĻā§āĻāĻŋāϝāĻŧā§āĻā§ lesson 02āĨ¤
FizzBuzz, āϏā§āĻāĻžāĻŦā§
Zara āĻā§āϞāĻžāĻāĻžāϰ āĻāĻāĻāĻž party āϰā§āĻĒ āĻā§āϞā§āĨ¤ 3-āĻāϰ āĻā§āĻŖāĻŋāϤāĻ āĻšāϞ⧠"Fizz", 7-āĻāϰ āĻā§āĻŖāĻŋāϤāĻ āĻšāϞ⧠"Bazz", āĻāϰ āĻĻā§āĻā§āϰāĻ āĻā§āĻŖāĻŋāϤāĻ āĻšāϞ⧠"FizzBazz"āĨ¤ āύāĻŋāĻā§ 12 āĻĨā§āĻā§ 21 āĻĒāϰā§āϝāύā§āϤ āϏāĻāĻā§āϝāĻžāϰ āĻāύā§āϝ if chain-āĻāĻžāĨ¤ Test-āĻā§āϞā§āϰ āĻā§āϰāĻŽāĻāĻž āĻā§āϝāĻŧāĻžāϞ āĻāϰ⧠āĻĒāĻĄāĻŧā§āĨ¤
const out = [];
for (let i = 12; i <= 21; i++) {
if (i % 3 === 0 && i % 7 === 0) {
out.push("FizzBazz");
} else if (i % 3 === 0) {
out.push("Fizz");
} else if (i % 7 === 0) {
out.push("Bazz");
} else {
out.push(i);
}
}
console.log(out.join("\n"));
Fizz
13
Bazz
Fizz
16
17
Fizz
19
20
FizzBazz
āĻāĻāĻāĻž if chain āĻĒā§āϰāĻĨāĻŽ āϝ⧠branch-āĻāϰ test true āĻšāϝāĻŧ, āϏā§āĻāĻž āĻāĻžāϞāĻžāϝāĻŧ, āĻŦāĻžāĻāĻŋāĻā§āϞ⧠āĻŦāĻžāĻĻ āĻĻā§āϝāĻŧāĨ¤ 21 āĻĒāĻžāϏ āĻāϰ⧠i % 3 === 0 test, āϤāĻžāĻ āϝ⧠chain āĻāĻā§ 3-āĻāϰ āĻāĻĨāĻž āĻāĻŋāĻā§āĻā§āϏ āĻāϰā§, āϏ⧠"Fizz" print āĻāϰ⧠āĻĢā§āϞā§, āĻā§āĻĄāĻŧāĻž test-āĻāϰ āĻāĻžāĻā§ āĻāϰ āĻĒā§āĻāĻāĻžāϝāĻŧāĻ āύāĻžāĨ¤ āϤāĻžāĻ āϏāĻŦāĻā§āϝāĻŧā§ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ test-āĻāĻž āĻŦāϏ⧠āϏāĻŦāĻžāϰ āĻāĻā§āĨ¤ āĻāϞā§āĻā§ āĻā§āϰāĻŽāĻāĻž āĻāϰ āϤāĻžāϰ āĻāϏāϞ output āĻĻā§āĻāĻžāĻŦā§ common mistake 1āĨ¤
Chain-āĻāϰ āĻāĻāĻāĻž āĻĻā§āϰā§āĻŦāϞāϤāĻž āĻāĻā§āĨ¤ āĻĻā§āĻāĻāĻž āĻļāĻŦā§āĻĻā§ āϞāĻžāĻā§ āĻāĻžāϰāĻāĻž branch; āϤāĻŋāύāĻāĻž āĻļāĻŦā§āĻĻā§ āϞāĻžāĻā§ āĻāĻāĻāĻž, āĻĒā§āϰāϤāĻŋāĻāĻž āĻŽāĻŋāĻļā§āϰāĻŖā§āϰ āĻāύā§āϝ āĻāĻāĻāĻžāĨ¤ āϏ⧠āϏāĻŽāĻžāϧāĻžāύāĻāĻž āĻļāĻŦā§āĻĻ āĻŦā§āĻā§ āύā§āϝāĻŧ āύāĻž, āĻļāĻŦā§āĻĻāĻāĻž āĻāĻĄāĻŧā§ āϤā§āϞā§āĨ¤
āύāϤā§āύ āϝāĻž: āϤāĻŋāύāĻāĻž āĻāϞāĻžāĻĻāĻž if statement, āĻĒā§āϰāϤāĻŋāĻāĻž āĻāĻāĻāĻž āĻāϰ⧠āĻā§āĻāϰ⧠āĻā§āĻĄāĻŧā§, āĻā§āύ⧠else āĻāĻžāĻĄāĻŧāĻž; āĻāϰ āϏāĻāĻā§āϝāĻžāĻāĻžāϝāĻŧ āĻĢāĻŋāϰ⧠āϝā§āϤ⧠word || iāĨ¤ Zara 11-āĻāϰ āĻā§āĻŖāĻŋāϤāĻā§āϰ āĻāύā§āϝ āϝā§āĻ āĻāϰ⧠"Boom"āĨ¤
const input = require("fs").readFileSync(0, "utf8");
const tokens = input.split(/\s+/).filter(Boolean);
let at = 0;
const next = () => tokens[at++];
const nextInt = () => Number(next());
const out = [];
const n = nextInt();
for (let k = 0; k < n; k++) {
const i = nextInt();
let word = "";
if (i % 3 === 0) {
word += "Fizz";
}
if (i % 7 === 0) {
word += "Bazz";
}
if (i % 11 === 0) {
word += "Boom";
}
out.push(word || i);
}
console.log(out.join("\n"));
10
FizzBazz
Boom
FizzBoom
BazzBoom
FizzBazzBoom
Bazz
Fizz
āĻāĻ output-āĻāĻž input 8, āϤāĻžāϰāĻĒāϰ 10 21 22 33 77 231 7 9-āĻāϰ āĻāύā§āϝāĨ¤ 231 āĻšāϞ⧠3 āĻā§āĻŖ 7 āĻā§āĻŖ 11, āϤāĻžāĻ āϤāĻŋāύāĻāĻž test-āĻ āύāĻŋāĻā§āϰ āĻā§āĻāϰ⧠āĻā§āĻĄāĻŧā§āĨ¤ āĻā§āύ⧠test āĻĒāĻžāϏ āύāĻž āĻāϰāϞ⧠word āĻĨā§āĻā§ āϝāĻžāϝāĻŧ "", āϝā§āĻāĻž falsy, āϤāĻžāĻ || āϏāĻāĻā§āϝāĻžāĻāĻž āĻĻā§āϝāĻŧ (Module 2)āĨ¤ āĻā§āϰāĻŽ āύāĻŋāϝāĻŧā§ āĻāϰ āĻŽāĻžāĻĨāĻžāĻŦā§āϝāĻĨāĻž āύā§āĻ, āĻāϰ āĻāϤā§āϰā§āĻĨ āĻāĻāĻāĻž āĻļāĻŦā§āĻĻ āĻŽāĻžāύ⧠āĻļā§āϧ⧠āĻāϰā§āĻāĻāĻž āϞāĻžāĻāύāĨ¤
āϝ⧠loop āĻĻā§āĻ āĻāĻžāϰāĻŖā§ āĻĨāĻžāĻŽā§
āĻāĻŋāĻā§ loop āĻĨāĻžāĻŽā§ āĻā§āύāĻž āĻļā§āώ āĻšāϞā§, āĻāĻŋāĻā§ āĻĨāĻžāĻŽā§ āĻā§āύ⧠āĻāĻāύāĻž āĻāĻāϞā§āĨ¤ āĻ
āύā§āĻŽāĻžāύā§āϰ āĻā§āϞāĻžāϝāĻŧ āĻĻā§āĻā§āĻ āĻāĻā§: āĻā§āώā§āĻāĻž āĻĢā§āϰāĻŋāϝāĻŧā§ āϝā§āϤ⧠āĻĒāĻžāϰā§, āĻāĻŦāĻžāϰ āĻ āĻŋāĻ āĻāϤā§āϤāϰāĻ āϞā§āĻā§ āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻāĻāĻž āĻāĻžāϰāĻŖ āϏāĻžāĻŽāϞāĻžāϝāĻŧ loop-āĻāϰ āύāĻŋāĻā§āϰ test, āĻ
āύā§āϝāĻāĻž āϏāĻžāĻŽāϞāĻžāϝāĻŧ breakāĨ¤
āύāϤā§āύ āϝāĻž: āĻāĻāĻāĻž while loop āϝāĻžāϰ test āĻšāϞ⧠āϏā§āĻŽāĻžāĻāĻž, āĻāϰ āĻ āĻŋāĻ āĻ
āύā§āĻŽāĻžāύā§āϰ āĻāύā§āϝ āĻāϰ āĻāĻā§āĻāĻžāĻā§ āĻĢā§āϰāĻŋāϝāĻŧā§ āϝāĻžāĻāϝāĻŧāĻž input-āĻāϰ āĻāύā§āϝ breakāĨ¤ Alice āĻāĻāĻāĻž āĻā§āĻĒāύ āϏāĻāĻā§āϝāĻž āĻ āĻŋāĻ āĻāϰā§, āĻāϰ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϝāĻŧā§āĻāĻŦāĻžāϰ āĻā§āώā§āĻāĻž āĻāϰāϤ⧠āĻĻā§āϝāĻŧāĨ¤
const input = require("fs").readFileSync(0, "utf8");
const tokens = input.split(/\s+/).filter(Boolean);
let at = 0;
const next = () => tokens[at++];
const nextInt = () => Number(next());
const out = [];
const secret = nextInt();
const limit = nextInt();
let tries = 0;
let found = false;
while (tries < limit) {
const token = next();
if (token === undefined) {
break;
}
tries++;
const guess = Number(token);
if (guess === secret) {
found = true;
break;
}
out.push(guess + " is too " + (guess < secret ? "low" : "high"));
}
if (found) {
out.push("got it in " + tries);
} else {
out.push("no luck after " + tries + ", it was " + secret);
}
console.log(out.join("\n"));
50 is too high
25 is too low
37 is too low
43 is too high
got it in 5
āĻāĻ output-āĻāĻž input 42 5, āϤāĻžāϰāĻĒāϰ 50 25 37 43 42 10-āĻāϰ āĻāύā§āϝāĨ¤ āĻĒāĻā§āĻāĻŽ āĻ
āύā§āĻŽāĻžāύāĻāĻž āĻ āĻŋāĻ, āϏā§āĻŽāĻžāϰ āĻ āĻŋāĻ āĻāĻŋāϤāϰā§, āϤāĻžāĻ 10 āĻāϰ āĻĒāĻĄāĻŧāĻžāĻ āĻšāϝāĻŧ āύāĻžāĨ¤ found flag-āĻāĻž āĻŽāύ⧠āϰāĻžāĻā§ loop āĻā§āύ āĻĨāĻžāĻŽāϞ, āĻāĻžāϰāĻŖ loop-āĻāϰ āĻĒāϰ⧠āĻĻā§āĻ āĻāĻžāϰāĻŖāĻā§ āĻĻā§āĻāϤ⧠āĻāĻāĻ āϰāĻāĻŽ āϞāĻžāĻā§āĨ¤ āϏā§āĻŽāĻž 4 āĻāϰ⧠āĻĻāĻžāĻ, āĻļā§āώ āϞāĻžāĻāύ āĻšāϝāĻŧā§ āϝāĻžāĻŦā§ no luck after 4, it was 42āĨ¤
āĻĻā§āĻāĻāĻž loop āĻĻāĻŋāϝāĻŧā§ āĻāĻāĻāĻž grid
āĻāĻāĻāĻž loop-āĻāϰ āĻāĻŋāϤāϰ⧠āĻāϰā§āĻāĻāĻž loop āĻĨāĻžāĻāϞ⧠āϤāĻžāĻā§ āĻŦāϞ⧠nested loopāĨ¤ āĻŦāĻžāĻāϰā§āϰ loop-āĻāϰ āĻĒā§āϰāϤāĻŋāĻāĻž pass-āĻ āĻāĻŋāϤāϰā§āϰ loop āϤāĻžāϰ āϏāĻŦ pass āĻĒā§āϰ⧠āĻā§āϰ⧠āĻāϏā§āĨ¤ āϤāĻžāĻ 6 āϏāĻžāϰāĻŋ āĻāϰ 6 āĻāϞāĻžāĻŽā§āϰ grid-āĻ āĻāĻŋāϤāϰā§āϰ body āĻāϞ⧠36 āĻŦāĻžāϰāĨ¤
āύāϤā§āύ āϝāĻž: nested for loop, āĻāϰ āĻāϞāĻžāĻŽāĻā§āϞ⧠āϏā§āĻāĻž āϞāĻžāĻāύ⧠āϰāĻžāĻāϤ⧠padStartāĨ¤ String(x).padStart(w) text-āĻāϰ āĻŦāĻžāĻ āĻĻāĻŋāĻā§ space āĻŦāϏāĻžāϝāĻŧ, āϝāϤāĻā§āώāĻŖ āύāĻž āϏā§āĻāĻž w character āϞāĻŽā§āĻŦāĻž āĻšāϝāĻŧ; āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ Module 3-āĻāĨ¤
const input = require("fs").readFileSync(0, "utf8");
const tokens = input.split(/\s+/).filter(Boolean);
let at = 0;
const next = () => tokens[at++];
const nextInt = () => Number(next());
const out = [];
const n = nextInt();
const width = String(n * n).length + 1;
for (let row = 1; row <= n; row++) {
let line = "";
for (let col = 1; col <= n; col++) {
line += String(row * col).padStart(width);
}
out.push(line);
}
console.log(out.join("\n"));
1 2 3 4 5 6
2 4 6 8 10 12
3 6 9 12 15 18
4 8 12 16 20 24
5 10 15 20 25 30
6 12 18 24 30 36
āĻāĻ output-āĻāĻž input 6-āĻāϰ āĻāύā§āϝāĨ¤ āϏāĻŦāĻā§āϝāĻŧā§ āĻāĻāĻĄāĻŧāĻž āϏāĻāĻā§āϝāĻž n * n, āĻŽāĻžāύ⧠36, āϝāĻžāϰ character 2āĻāĻž, āϤāĻžāĻ āĻĒā§āϰāϤāĻŋāĻāĻž āĻāϰ 3 āĻāĻāĻĄāĻŧāĻž, āĻāĻ space āĻŦāĻžāĻĄāĻŧāϤāĻŋāĨ¤ line āĻŦāĻžāĻāϰā§āϰ loop-āĻāϰ āĻāĻŋāϤāϰ⧠āύāϤā§āύ āĻāϰ⧠āϤā§āϰāĻŋ āĻšāϝāĻŧ, āϤāĻžāĻ āĻĒā§āϰāϤāĻŋāĻāĻž āϏāĻžāϰāĻŋ āĻāĻžāϞāĻŋ āĻĨā§āĻā§ āĻļā§āϰ⧠āĻšāϝāĻŧāĨ¤ āĻĻā§āĻ counter-āĻāϰ āύāĻžāĻŽ āĻāϞāĻžāĻĻāĻž, row āĻāϰ col; āĻĻā§āĻā§āϰ āĻāĻāĻ āύāĻžāĻŽ āĻĻāĻŋāϞ⧠āĻā§ āĻšāϝāĻŧ, āĻĻā§āĻāĻžāĻŦā§ common mistake 3āĨ¤
āĻāĻāĻž āĻāĻŋ prime? āĻŦāϰā§āĻāĻŽā§āϞ⧠āĻāĻŋāϝāĻŧā§ āĻĨāĻžāĻŽā§
Prime āĻšāϞ⧠1-āĻāϰ āĻā§āϝāĻŧā§ āĻŦāĻĄāĻŧ āĻāĻŽāύ āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻž, āϝāĻžāĻā§ āĻļā§āϧ⧠1 āĻāϰ āϏ⧠āύāĻŋāĻā§ āĻāĻžāĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤ n āϝāĻžāĻāĻžāĻ āĻāϰāϤ⧠2 āĻĨā§āĻā§ āĻļā§āϰ⧠āĻāϰ⧠āĻĒā§āϰāϤāĻŋāĻāĻž āĻāĻžāĻāĻ d āĻā§āώā§āĻāĻž āĻāϰā§āĨ¤ āĻāĻžāĻāĻ āĻāϏ⧠āĻā§āĻĄāĻŧāĻžāϝāĻŧ: d āϝāĻĻāĻŋ n-āĻā§ āĻāĻžāĻ āĻāϰā§, āϤāĻžāĻšāϞ⧠n / d-āĻ āĻāϰā§, āĻāϰ āĻĻā§āĻā§āϰ āĻāĻāĻāĻž n-āĻāϰ āĻŦāϰā§āĻāĻŽā§āϞā§āϰ āĻā§āϝāĻŧā§ āĻŦāĻĄāĻŧ āύāĻžāĨ¤ āϤāĻžāĻ d * d n-āĻā§ āĻāĻžāĻĄāĻŧāĻŋāϝāĻŧā§ āĻā§āϞā§āĻ loop āĻĨāĻžāĻŽāϤ⧠āĻĒāĻžāϰā§, āĻāϰ āĻā§āύ⧠āĻāĻžāĻāĻ āĻĒā§āϝāĻŧā§ āĻā§āϞ⧠āϤ⧠āϏāĻžāĻĨā§ āϏāĻžāĻĨā§āĻāĨ¤
āύāϤā§āύ āϝāĻž: trial division, āϝā§āĻāĻžāύ⧠loop-āĻāϰ test d * d <= n, āĻāϰ āĻĒā§āϰāĻĨāĻŽ āĻāĻžāĻāĻ āĻĒā§āϞā§āĻ breakāĨ¤ Program-āĻāĻž āϝ⧠āĻā§āĻĄāĻŧāĻžāĻāĻž āĻĒā§āϞ, āϏā§āĻāĻžāĻ print āĻāϰā§āĨ¤
const input = require("fs").readFileSync(0, "utf8");
const tokens = input.split(/\s+/).filter(Boolean);
let at = 0;
const next = () => tokens[at++];
const nextInt = () => Number(next());
const out = [];
const count = nextInt();
for (let k = 0; k < count; k++) {
const n = nextInt();
let divisor = 0;
for (let d = 2; d * d <= n; d++) {
if (n % d === 0) {
divisor = d;
break;
}
}
if (n < 2) {
out.push(n + ": neither prime nor composite");
} else if (divisor === 0) {
out.push(n + ": prime");
} else {
out.push(n + ": not prime, " + divisor + " x " + n / divisor);
}
}
console.log(out.join("\n"));
1: neither prime nor composite
2: prime
91: not prime, 7 x 13
97: prime
7919: prime
1000001: not prime, 101 x 9901
āĻāĻ output-āĻāĻž input 6, āϤāĻžāϰāĻĒāϰ 1 2 91 97 7919 1000001-āĻāϰ āĻāύā§āϝāĨ¤ 2-āĻāϰ āĻŦā§āϞāĻžāϝāĻŧ āĻāĻŋāϤāϰā§āϰ loop āĻāĻāĻŦāĻžāϰāĻ āĻāϞ⧠āύāĻž, āĻāĻžāϰāĻŖ 2 āĻā§āĻŖ 2 āĻāĻā§āĻ 2-āĻā§ āĻāĻžāĻĄāĻŧāĻŋāϝāĻŧā§ āĻā§āĻā§āĨ¤ 7919-āĻāϰ āĻŦā§āϞāĻžāϝāĻŧ āϏ⧠d āĻā§āώā§āĻāĻž āĻāϰ⧠2 āĻĨā§āĻā§ 88 āĻĒāϰā§āϝāύā§āϤ, āĻāĻžāϰāĻŖ 89 āĻā§āĻŖ 89 āĻšāϞ⧠7921āĨ¤ āĻŦāϰā§āĻāĻŽā§āϞ⧠āύāĻž āĻĨāĻžāĻŽāϞ⧠āĻā§āώā§āĻāĻž āĻāϰāϤ⧠āĻšāϤ⧠āĻĒā§āϰāĻžāϝāĻŧ 7,900āĻāĻž āĻāĻžāĻāĻāĨ¤
Sieve: āĻāĻžāĻ āύāĻž āĻāϰ⧠āĻā§āĻā§ āĻĻāĻžāĻ Intermediate
n āĻĒāϰā§āϝāύā§āϤ āϏāĻŦ prime āĻā§āĻāĻāϤ⧠āĻĒā§āϰāϤāĻŋāĻāĻž āϏāĻāĻā§āϝāĻž āĻāϞāĻžāĻĻāĻž āĻāϰ⧠āϝāĻžāĻāĻžāĻ āĻāϰāϞ⧠āĻāĻāĻ āĻāĻžāĻ āĻŦāĻžāϰāĻŦāĻžāϰ āĻšāϝāĻŧāĨ¤ Sieve of Eratosthenes, āϝāĻžāϰ āύāĻžāĻŽ āĻāύā§āĻĻāĻžāĻ 240 āĻā§āϰāĻŋāϏā§āĻāĻĒā§āϰā§āĻŦāĻžāĻŦā§āĻĻā§āϰ āĻāĻ āĻā§āϰāĻŋāĻ āĻĒāĻŖā§āĻĄāĻŋāϤā§āϰ āύāĻžāĻŽā§, āĻāĻžāĻāĻāĻž āĻāϞā§āĻā§ āĻĻā§āϝāĻŧāĨ¤ āϏāĻŦ āϏāĻāĻā§āϝāĻž āϞāĻŋāĻā§ āĻĢā§āϞā§, āϤāĻžāϰāĻĒāϰ āϝ⧠prime-āĻ āĻĒāĻžāĻ, āϤāĻžāϰ āĻā§āĻŖāĻŋāϤāĻāĻā§āϞ⧠āĻā§āĻā§ āĻĻāĻžāĻāĨ¤ āϝā§āĻā§āϞ⧠āĻāĻāύ⧠āĻāĻžāĻāĻž āĻĒāĻĄāĻŧā§āύāĻŋ, āϏā§āĻā§āϞā§āĻ primeāĨ¤
Program-āĻāĻž āĻĒā§āϰāϤāĻŋāĻāĻž āϏāĻāĻā§āϝāĻžāϰ āĻāύā§āϝ āĻāĻāĻāĻž āĻāϰ⧠true āĻŦāĻž false flag āϰāĻžāĻā§, āĻāĻāĻāĻž array-āϤā§āĨ¤ new Array(n + 1).fill(true) āĻŦāĻžāύāĻžāϝāĻŧ n + 1āĻāĻž āĻāϰ, 0 āĻĨā§āĻā§ n āύāĻŽā§āĻŦāϰ, āϏāĻŦāĻā§āϞā§āϤ⧠trueāĨ¤ isPrime[m] m āύāĻŽā§āĻŦāϰ āĻāϰāĻāĻž āĻĒāĻĄāĻŧā§, āĻāϰ isPrime[m] = false āĻāĻāĻžāĻā§ āĻā§āĻā§ āĻĻā§āϝāĻŧāĨ¤ Array āĻ āĻŋāĻāĻŽāϤ⧠āĻļā§āĻāĻžāĻŦā§ Module 7; āĻāĻāĻžāύ⧠array āĻŽāĻžāύ⧠āĻļā§āϧ⧠āĻāĻ āϏāĻžāϰāĻŋ flagāĨ¤
āύāϤā§āύ āϝāĻž: flag-āĻāϰ āĻāĻāĻāĻž array, āĻāĻāĻāĻž āĻāĻŋāϤāϰā§āϰ loop āϝā§āĻāĻž m += p āĻĻāĻŋāϝāĻŧā§ p āĻāϰ⧠āϞāĻžāĻĢāĻžāϝāĻŧ, āĻāϰ āĻāĻā§āĻ āĻāĻžāĻāĻž āϏāĻāĻā§āϝāĻž āĻŦāĻžāĻĻ āĻĻāĻŋāϤ⧠continueāĨ¤
const input = require("fs").readFileSync(0, "utf8");
const tokens = input.split(/\s+/).filter(Boolean);
let at = 0;
const next = () => tokens[at++];
const nextInt = () => Number(next());
const out = [];
const n = nextInt();
const isPrime = new Array(n + 1).fill(true);
isPrime[0] = false;
isPrime[1] = false;
for (let p = 2; p * p <= n; p++) {
if (!isPrime[p]) {
continue;
}
let crossed = "";
for (let m = p * p; m <= n; m += p) {
if (isPrime[m]) {
isPrime[m] = false;
crossed += " " + m;
}
}
out.push("crossed by " + p + ":" + crossed);
}
let primes = "";
for (let i = 2; i <= n; i++) {
if (isPrime[i]) {
primes += " " + i;
}
}
out.push("primes:" + primes);
console.log(out.join("\n"));
crossed by 2: 4 6 8 10 12 14 16 18 20 22 24 26 28 30
crossed by 3: 9 15 21 27
crossed by 5: 25
primes: 2 3 5 7 11 13 17 19 23 29
āĻāĻ output-āĻāĻž input 30-āĻāϰ āĻāύā§āϝ, āĻāϰ āĻāĻŦāĻŋāϰ āϏāĻžāĻĨā§ āϞāĻžāĻāύ⧠āϞāĻžāĻāύ⧠āĻŽā§āϞā§āĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž prime p āĻāĻžāĻāĻž āĻļā§āϰ⧠āĻāϰ⧠p * p āĻĨā§āĻā§, āĻāĻžāϰāĻŖ āĻāϰ āĻā§āĻ āĻĒā§āϰāϤāĻŋāĻāĻž āĻā§āĻŖāĻŋāϤāĻā§āϰ āĻāĻāĻāĻž āĻā§āĻ āĻāĻžāĻāĻ āĻāĻā§, āϝ⧠āĻāĻā§āĻ āĻāĻāĻžāĻā§ āĻā§āĻā§ āϰā§āĻā§āĻā§āĨ¤ 4-āĻā§ continue āĻŦāĻžāĻĻ āĻĻā§āϝāĻŧ, āĻāĻžāϰāĻŖ 2 āĻāĻāĻžāĻā§ āĻā§āĻā§āĻā§āĨ¤ Sieve āĻā§āύ⧠āĻāĻžāĻāĻ āĻāϰ⧠āύāĻž, āϤāĻžāĻ n āĻĒāϰā§āϝāύā§āϤ āϏāĻŦ prime āĻĻāϰāĻāĻžāϰ āĻšāϞ⧠āĻāĻāĻžāĻ āĻā§āϤā§āĨ¤
switch āĻĻāĻŋāϝāĻŧā§ āĻāĻāĻāĻž menu
āĻāĻāĻāĻž switch āĻāĻāĻāĻž value-āĻā§ case value-āĻā§āϞā§āϰ āĻāĻāĻāĻž āϤāĻžāϞāĻŋāĻāĻžāϰ āϏāĻžāĻĨā§ āĻŽā§āϞāĻžāϝāĻŧ, === āĻĻāĻŋāϝāĻŧā§, āĻāϰ āĻĒā§āϰāĻĨāĻŽ āĻŽāĻŋāϞ⧠āϝāĻžāĻāϝāĻŧāĻž āĻāĻžāϝāĻŧāĻāĻžāϝāĻŧ āϞāĻžāĻĢ āĻĻā§āϝāĻŧāĨ¤ āĻāϰ āĻāĻāĻŽāĻžāϤā§āϰ āĻĢāĻžāĻāĻĻāĻāĻž lesson 02 āĻĻā§āĻāĻŋāϝāĻŧā§āĻā§: break āύāĻž āĻĨāĻžāĻāϞ⧠run āĻāĻĄāĻŧāĻŋāϝāĻŧā§ āĻĒāϰā§āϰ case-āĻ āĻĸā§āĻā§ āĻĒāĻĄāĻŧā§āĨ¤ āĻāĻ āĻāĻĄāĻŧāĻŋāϝāĻŧā§ āĻĒāĻĄāĻŧāĻžāϰ (fall-through) āĻāĻāĻŽāĻžāϤā§āϰ āϏ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāĻ āĻĻā§āĻāĻŋāϝāĻŧā§āĻā§: āĻāϝāĻŧā§āĻāĻāĻž case āϝāĻāύ āĻāĻāĻ āĻāĻžāĻ āĻāĻžāĻ āĻāϰ⧠āύā§āϝāĻŧāĨ¤
āύāϤā§āύ āϝāĻž: āĻāĻāĻāĻž while loop-āĻāϰ āĻāĻŋāϤāϰ⧠āĻāĻāĻāĻž switch, āϝā§āĻāĻžāύ⧠āĻĻā§āĻāĻāĻž case āĻāĻāĻ āĻāĻžāĻā§ āĻā§āĻ āĻŦā§āĻāϧā§āĻā§āĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž āĻļāĻŦā§āĻĻ āĻāĻāĻāĻž item, āĻāϰ pay bill print āĻāϰ⧠āύāϤā§āύ bill āĻļā§āϰ⧠āĻāϰā§āĨ¤
const input = require("fs").readFileSync(0, "utf8");
const tokens = input.split(/\s+/).filter(Boolean);
let at = 0;
const next = () => tokens[at++];
const nextInt = () => Number(next());
const out = [];
let total = 0;
let token = next();
while (token !== undefined) {
switch (token) {
case "tea":
total += 20;
break;
case "coffee":
total += 50;
break;
case "cake":
case "muffin":
total += 40;
break;
case "pay":
out.push("paid " + total);
total = 0;
break;
default:
out.push("no item " + token);
}
token = next();
}
if (total > 0) {
out.push("unpaid " + total);
}
console.log(out.join("\n"));
paid 110
no item juice
paid 60
unpaid 50
āĻāĻ output-āĻāĻž input tea cake coffee pay muffin juice tea pay coffee-āĻāϰ āĻāύā§āϝāĨ¤ cake āĻāϰ muffin-āĻāϰ āĻĻāĻžāĻŽ āĻāĻāĻ, āϤāĻžāĻ āĻāĻžāϞāĻŋ case "cake": āĻāĻā§āĻā§ āĻāϰā§āĻ āĻāĻĄāĻŧāĻŋāϝāĻŧā§ āĻĒāĻĄāĻŧā§āĨ¤ āϝ⧠āĻļāĻŦā§āĻĻā§āϰ āĻā§āύ⧠case āύā§āĻ, āϤāĻžāĻā§ āϧāϰ⧠defaultāĨ¤ āĻā§āϝāĻŧāĻžāϞ āϰā§āĻā§, switch-āĻāϰ āĻāĻŋāϤāϰā§āϰ break āĻŦā§āϰ āĻāϰ⧠switch āĻĨā§āĻā§, āĻāĻžāϰāĻĒāĻžāĻļā§āϰ loop āĻĨā§āĻā§ āύāĻžāĨ¤
āĻāĻ pass-āĻāĻ āĻšāĻŋāϏāĻžāĻŦ
āĻāϞāϤāĻŋ (running) value āĻŽāĻžāύ⧠āϝā§āĻāĻž āĻĒā§āϰāϤāĻŋāĻāĻž item āĻāϏāĻžāϰ āϏāĻžāĻĨā§ āϏāĻžāĻĨā§ update āĻšāϝāĻŧ, āϝā§āĻŽāύ āĻāĻāĻāĻž totalāĨ¤ āĻāϞāϤāĻŋ value āĻĨāĻžāĻāϞ⧠program āĻĒā§āϰāϤāĻŋāĻāĻž item āĻāĻāĻŦāĻžāϰāĻ āĻĒāĻĄāĻŧā§, āĻāϰ āĻāĻŋāĻā§ āĻāĻŽāĻŋāϝāĻŧā§ āϰāĻžāĻā§ āύāĻžāĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž āĻāϞāϤāĻŋ value-āϰ āĻĻāϰāĻāĻžāϰ āĻāĻāĻāĻž āύāĻŋāϰāĻžāĻĒāĻĻ āĻļā§āϰā§āĨ¤ Count āĻļā§āϰ⧠āĻšāϝāĻŧ 0 āĻĨā§āĻā§āĨ¤ āĻāĻāύ āĻĒāϰā§āϝāύā§āϤ āϏāĻŦāĻā§āϝāĻŧā§ āĻŦāĻĄāĻŧāĻāĻž (largest-so-far) āĻļā§āϰ⧠āĻšāϝāĻŧ -Infinity āĻĨā§āĻā§, āϝā§āĻāĻžāĻā§ āϝā§āĻā§āύ⧠āĻāϏāϞ āϏāĻāĻā§āϝāĻž āĻšāĻžāϰāĻŋāϝāĻŧā§ āĻĻā§āϝāĻŧ, āύāϝāĻŧāϤ⧠āĻĒā§āϰāĻĨāĻŽ item āĻĨā§āĻā§āĻāĨ¤
āύāϤā§āύ āϝāĻž: āĻāĻ loop-āĻ āĻāϝāĻŧā§āĻāĻāĻž āĻāϞāϤāĻŋ value, āĻāϰ āĻāĻā§āϰ item āĻŽāύ⧠āϰāĻžāĻāϤ⧠previousāĨ¤ David-āĻāϰ āĻāĻŦāĻšāĻžāĻāϝāĻŧāĻžāϰ āĻāĻžāϤāĻžāϝāĻŧ āĻĻāĻŋāύ⧠āĻāĻāĻāĻž āĻāϰ⧠āϤāĻžāĻĒāĻŽāĻžāϤā§āϰāĻž, input āĻļā§āώ āύāĻž āĻšāĻāϝāĻŧāĻž āĻĒāϰā§āϝāύā§āϤāĨ¤
const input = require("fs").readFileSync(0, "utf8");
const tokens = input.split(/\s+/).filter(Boolean);
let at = 0;
const next = () => tokens[at++];
const nextInt = () => Number(next());
const out = [];
let count = 0;
let highest = -Infinity;
let highestDay = 0;
let biggestRise = 0;
let frostDays = 0;
let previous = 0;
let token = next();
while (token !== undefined) {
const t = Number(token);
count++;
if (t > highest) {
highest = t;
highestDay = count;
}
if (count > 1 && t - previous > biggestRise) {
biggestRise = t - previous;
}
if (t < 0) {
frostDays++;
}
previous = t;
token = next();
}
out.push("days " + count);
out.push("highest " + highest + " on day " + highestDay);
out.push("biggest rise " + biggestRise);
out.push("frost days " + frostDays);
console.log(out.join("\n"));
days 7
highest 12 on day 7
biggest rise 13
frost days 2
āĻāĻ output-āĻāĻž input 3 -2 4 9 7 -1 12-āĻāϰ āĻāύā§āϝāĨ¤ āĻļā§āώ āĻĻāĻŋāύ⧠-1 āĻĨā§āĻā§ 12-āϤ⧠āĻāĻ āĻžāĻāĻž 13āĨ¤ count > 1 āĻĒā§āϰāĻĨāĻŽ āĻĻāĻŋāύāĻāĻžāĻā§ āĻāĻāϞ⧠āϰāĻžāĻā§, āĻāĻžāϰāĻŖ āĻāϰ āĻāĻā§ āĻā§āύ⧠āĻĻāĻŋāύ āύā§āĻāĨ¤ >= āύāĻž āϞāĻŋāĻā§ > āϞā§āĻāĻžāϝāĻŧ āϏāϰā§āĻŦā§āĻā§āĻāĻāĻž āĻĒā§āϰāĻĨāĻŽ āϝā§āĻĻāĻŋāύ āĻā§āĻāϝāĻŧāĻž āĻšāϝāĻŧā§āĻā§, āϏā§āĻ āĻĻāĻŋāύāĻāĻžāĻ āĻĨāĻžāĻā§āĨ¤ āϝ⧠āϏāĻĒā§āϤāĻžāĻšā§ āĻļā§āϧ⧠āĻ āĻžāύā§āĻĄāĻžāĻ āĻŦāĻžāĻĄāĻŧā§, āϏā§āĻāĻžāύ⧠biggest rise āĻāϏ⧠0, āĻāϰ āĻāĻāĻž āĻāĻ program-āĻāϰ āύāĻŋāĻā§āϰ āĻŦā§āĻā§ āύā§āĻāϝāĻŧāĻž āύāĻŋāϝāĻŧāĻŽāĨ¤
āĻāĻāĻž āĻā§āĻĨāĻžāϝāĻŧ āĻāĻžāĻā§ āϞāĻžāĻā§
- āĻāĻžāĻāϰāĻŋāϰ screeningāĨ¤ Imran Ghory 2007 āϏāĻžāϞā§āϰ āĻāĻ blog post-āĻ āĻāĻžāĻāϰāĻŋāĻĒā§āϰāĻžāϰā§āĻĨā§ āĻāĻžāĻāĻāϤ⧠FizzBuzz-āĻāϰ āĻĒā§āϰāϏā§āϤāĻžāĻŦ āĻĻā§āύāĨ¤ āĻāĻāĻ āĻŦāĻāϰ Jeff Atwood-āĻāϰ "Why Can't Programmers.. Program?" āĻāĻāĻžāĻā§ āĻŦāĻŋāĻā§āϝāĻžāϤ āĻāϰ⧠āĻĻā§āϝāĻŧāĨ¤
- OpenSSLāĨ¤ āϏāĻŽā§āĻāĻžāĻŦā§āϝāϤāĻž-āύāĻŋāϰā§āĻāϰ Miller-Rabin test-āĻāϰ āĻāĻā§ OpenSSL āĻāĻāĻāĻž āϏāĻŽā§āĻāĻžāĻŦā§āϝ prime-āĻā§ āĻā§āĻ āĻā§āĻ prime-āĻāϰ āĻāĻāĻāĻž table āĻĻāĻŋāϝāĻŧā§ āĻāĻžāĻ āĻāϰ⧠āĻĻā§āĻā§āĨ¤ āϏāϏā§āϤāĻž āĻāĻ early exit āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ āĻĒā§āϰāĻžāϰā§āĻĨā§āĻā§ āĻļā§āϰā§āϤā§āĻ āĻŦāĻžāĻĻ āĻĻāĻŋāϝāĻŧā§ āĻĻā§āϝāĻŧāĨ¤
- Unix-āĻāϰ
wctoolāĨ¤ āĻāĻāĻāĻž file-āĻāϰ āϞāĻžāĻāύ, āĻļāĻŦā§āĻĻ āĻāϰ byte āĻā§āύ⧠āĻāĻ pass-āĻāĻ, Example 7-āĻāϰ āĻŽāϤ⧠āĻāϞāϤāĻŋ count āĻĻāĻŋāϝāĻŧā§āĨ¤ - ReduxāĨ¤ āĻāĻĻā§āϰ documentation āĻāĻāĻāĻž reducer āϞā§āĻā§
action.type-āĻāϰ āĻāĻĒāϰ āĻāĻāĻāĻžswitchāĻšāĻŋāϏā§āĻŦā§, āĻĒā§āϰāϤāĻŋāĻāĻž action-āĻāϰ āĻāύā§āϝ āĻāĻāĻāĻž case āĻāϰ āĻāĻāĻāĻž default āϏāĻš, āĻ āĻŋāĻ Kenji-āϰ kiosk-āĻāϰ āĻāĻĄāĻŧāύā§āĨ¤
āϝ⧠āĻā§āϞāĻā§āϞ⧠āϏāĻŦāĻžāĻ āĻāϰā§
ā§§. āĻā§āĻĄāĻŧāĻž test āϏāĻŦāĻžāϰ āĻļā§āώā§āĨ¤
const out = [];
for (let i = 19; i <= 21; i++) {
if (i % 3 === 0) {
out.push("Fizz");
} else if (i % 7 === 0) {
out.push("Bazz");
} else if (i % 3 === 0 && i % 7 === 0) {
out.push("FizzBazz");
} else {
out.push(i);
}
}
console.log(out.join("\n"));
19
20
Fizz
āĻā§āύ⧠error āύā§āĻ, āĻāϰ 21 āĻŦāϞāĻā§ "Fizz"āĨ¤ āĻĒā§āϰāĻĨāĻŽ test-āĻ 21-āĻāϰ āϏāĻžāĻĨā§ āĻŽāĻŋāϞ⧠āĻā§āĻā§, āϤāĻžāĻ āĻā§āĻĄāĻŧāĻž branch-āĻāĻž āĻāĻāύ⧠āĻāϞāϤā§āĻ āĻĒāĻžāϰ⧠āύāĻžāĨ¤ āϏāĻŦāĻā§āϝāĻŧā§ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ test āϏāĻŦāĻžāϰ āĻāĻā§ āĻŦāϏāĻžāĻ, āύāϝāĻŧāϤ⧠Example 1-āĻāϰ āĻŽāϤ⧠āĻļāĻŦā§āĻĻāĻāĻž āĻāĻĄāĻŧā§ āϤā§āϞā§āĨ¤ āĻā§āϞāĻāĻž āϤā§āĻŽāĻŋ āĻāϰāĻŦā§, āĻāĻžāϰāĻŖ āĻā§āϞāĻžāϰ āύāĻŋāϝāĻŧāĻŽ āϝ⧠āĻā§āϰāĻŽā§ āĻŦāϞāĻž āĻšāϝāĻŧ, āϤā§āĻŽāĻŋ āϏā§āĻ āĻā§āϰāĻŽā§āĻ āϞā§āĻā§āĨ¤
⧍. āϝ⧠prime check 1-āĻā§ prime āĻŦāϞā§āĨ¤
const n = 1;
let prime = true;
for (let d = 2; d * d <= n; d++) {
if (n % d === 0) {
prime = false;
break;
}
}
console.log(n + (prime ? " is prime" : " is not prime"));
1 is prime
1-āĻāϰ āĻāύā§āϝ loop āĻāĻāĻŦāĻžāϰāĻ āĻāϞ⧠āύāĻž, āϤāĻžāĻ flag-āĻā§ false āĻāϰāĻžāϰ āĻā§āĻ āύā§āĻāĨ¤ āĻļā§āϰ⧠āĻāϰ⧠let prime = n >= 2; āĻĻāĻŋāϝāĻŧā§, āϤāĻžāĻšāϞ⧠0, 1 āĻāϰ negative āϏāĻāĻā§āϝāĻž loop-āĻāϰ āĻāĻā§āĻ āĻŦāĻžāĻĻ āĻĒāĻĄāĻŧā§āĨ¤ āĻā§āϞāĻāĻž āĻā§āĻ āĻāĻĄāĻŧāĻžāĻŦā§, āĻāĻžāϰāĻŖ āϤā§āĻŽāĻŋ test āĻāϰ⧠7 āĻāϰ 9 āĻĻāĻŋāϝāĻŧā§, 1 āĻĻāĻŋāϝāĻŧā§ āĻāĻāύ⧠āύāĻžāĨ¤
ā§Š. āĻĻā§āĻ loop-āĻāϰ counter-āĻāϰ āĻāĻāĻ āύāĻžāĻŽāĨ¤
const out = [];
for (let i = 1; i <= 3; i++) {
let line = "";
for (let i = 1; i <= 3; i++) {
line += String(i * i).padStart(3);
}
out.push(line);
}
console.log(out.join("\n"));
1 4 9
1 4 9
1 4 9
āĻā§āύ⧠error āύā§āĻāĨ¤ āĻāĻŋāϤāϰā§āϰ let i āĻāĻāĻāĻž āύāϤā§āύ variable, āϝā§āĻāĻž āĻŦāĻžāĻāϰā§āϰāĻāĻžāĻā§ āĻāĻĄāĻŧāĻžāϞ āĻāϰ⧠āĻĢā§āϞā§, āϤāĻžāĻ i * i āĻĻā§āĻāĻŦāĻžāϰāĻ āĻāϞāĻžāĻŽāĻāĻž āύā§āϝāĻŧāĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž āϏāĻžāϰāĻŋ āĻāĻāĻ āϰāĻāĻŽ āĻāϏā§āĨ¤ Counter-āĻāϰ āύāĻžāĻŽ āĻĻāĻžāĻ āϏ⧠āϝāĻž āĻā§āύ⧠āϏā§āĻ āĻ
āύā§āϝāĻžāϝāĻŧā§, row āĻāϰ colāĨ¤ āĻā§āϞāĻāĻž āĻāϰāĻŦā§, āĻāĻžāϰāĻŖ āϝā§āĻā§āύ⧠loop-āĻ āϤā§āĻŽāĻžāϰ āĻāĻā§āϞ āĻāĻĒāύāĻž āĻĨā§āĻā§āĻ i āĻāĻžāĻāĻĒ āĻāϰā§āĨ¤
ā§Ē. āϝ⧠āĻāϞāϤāĻŋ minimum 0 āĻĨā§āĻā§ āĻļā§āϰ⧠āĻšāϝāĻŧāĨ¤
const temps = [5, 8, 3, 9];
let lowest = 0;
for (const t of temps) {
if (t < lowest) {
lowest = t;
}
}
console.log("lowest " + lowest);
lowest 0
āĻā§āύ⧠error āύā§āĻ, āĻ
āĻĨāĻ 0 āϤāĻžāϞāĻŋāĻāĻžāϤā§āĻ āύā§āĻāĨ¤ āĻā§āύ⧠āϤāĻžāĻĒāĻŽāĻžāϤā§āϰāĻžāĻ āĻļā§āϰā§āϰ 0-āĻāϰ āύāĻŋāĻā§ āύāĻž, āϤāĻžāĻ āĻāĻāĻž āύāĻĄāĻŧā§āĻ āύāĻžāĨ¤ āĻļā§āϰ⧠āĻāϰ⧠Infinity āĻĨā§āĻā§, āύāϝāĻŧāϤ⧠āĻĒā§āϰāĻĨāĻŽ item āĻĨā§āĻā§āĨ¤ āϤā§āĻŽāĻŋ 0 āĻĨā§āĻā§ āĻļā§āϰ⧠āĻāϰāĻŦā§, āĻāĻžāϰāĻŖ total āĻļā§āϰ⧠āĻšāϝāĻŧ āϏā§āĻāĻžāύ āĻĨā§āĻā§, āĻāϰ minimum-āĻā§āĻ āĻāĻāĻ āĻāĻžāϤā§āϰ āĻāĻŋāύāĻŋāϏ āĻŽāύ⧠āĻšāϝāĻŧāĨ¤
āĻāĻžāϞ Bob-āĻāϰ interview, āĻāϰ āĻ āĻāϏāϞ āĻā§āϞāĻžāĻāĻž āύāĻŋāϰā§āĻā§āϞ āĻāĻžāϝāĻŧ, āĻĒā§āϰāϤāĻŋāĻāĻž āϞāĻžāĻāύāĨ¤
Input. āĻāĻāĻāĻž āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻž nāĨ¤
Output. n-āĻāĻž āϞāĻžāĻāύ, 1 āĻĨā§āĻā§ n āĻĒāϰā§āϝāύā§āϤ āĻĒā§āϰāϤāĻŋāĻāĻž i-āĻāϰ āĻāύā§āϝ āĻāĻāĻāĻžāĨ¤ i āϝāĻĻāĻŋ 3 āĻāϰ 5 āĻĻā§āĻā§āϰāĻ āĻā§āĻŖāĻŋāϤāĻ āĻšāϝāĻŧ, print āĻāϰ⧠FizzBuzz; āĻļā§āϧ⧠3-āĻāϰ āĻšāϞ⧠Fizz, āĻļā§āϧ⧠5-āĻāϰ āĻšāϞ⧠Buzz, āύāĻāϞ⧠i āύāĻŋāĻā§āĻāĨ¤
Constraints. 1 <= n <= 100000āĨ¤
Sample. Input 15 āĻĻāĻŋāϞ⧠15 āϞāĻžāĻāύ⧠1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14 āĻāϰ FizzBuzzāĨ¤
const input = require("fs").readFileSync(0, "utf8");
const tokens = input.split(/\s+/).filter(Boolean);
let at = 0;
const next = () => tokens[at++];
const nextInt = () => Number(next());
const out = [];
// your code: read with next() and nextInt(), push every line of output to out
console.log(out.join("\n"));
fizzbuzz āύāĻžāĻŽā§ grade āĻšāϝāĻŧāĨ¤ Hidden test-āĻā§āϞ⧠āĻā§āώā§āĻāĻž āĻāϰ⧠n = 1, 15-āĻāϰ āĻā§āύ⧠āĻā§āĻŖāĻŋāϤāĻā§āϰ āĻĻā§āĻ āĻĒāĻžāĻļā§āϰ n, āĻāϰ āϏāĻŦāĻā§āϝāĻŧā§ āĻŦāĻĄāĻŧ nāĨ¤
Maria-āϰ āĻāĻžāĻā§ āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻžāϰ āĻāĻāĻāĻž āϤāĻžāϞāĻŋāĻāĻž āĻāĻā§, āĻāϰ āĻ āĻāĻ pass-āĻāĻ āϏāĻžāϰāĻžāĻāĻļāĻāĻž āĻāĻžāϝāĻŧ, wc āϝā§āĻāĻžāĻŦā§ āĻāĻāĻāĻž file āĻā§āύā§āĨ¤
Input. n, āϤāĻžāϰāĻĒāϰ n-āĻāĻž āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻžāĨ¤
Output. āĻāĻžāϰāĻāĻž āϞāĻžāĻāύ: count āĻāϰ n; min āĻāϰ āϏāĻŦāĻā§āϝāĻŧā§ āĻā§āĻāĻāĻž; max āĻāϰ āϏāĻŦāĻā§āϝāĻŧā§ āĻŦāĻĄāĻŧāĻāĻž; average āĻāϰ āϝā§āĻāĻĢāϞāĻā§ n āĻĻāĻŋāϝāĻŧā§ āĻāĻžāĻ, JavaScript āϏāĻāĻā§āϝāĻžāĻāĻž āϝā§āĻāĻžāĻŦā§ print āĻāϰ⧠(String() āϝāĻž āĻĻā§āϝāĻŧ)āĨ¤
Constraints. 1 <= n <= 100000; -1000000000 <= āĻĒā§āϰāϤāĻŋāĻāĻž āϏāĻāĻā§āϝāĻž <= 1000000000, āϤāĻžāĻ āϝā§āĻāĻĢāϞ āĻāĻāĻāĻž āύāĻŋāĻā§āĻāϤ āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻžāĨ¤
Sample. Input 5, āϤāĻžāϰāĻĒāϰ 4 -3 12 7 1 āĻĻāĻŋāϞ⧠āĻāĻžāϰ āϞāĻžāĻāύ⧠count 5, min -3, max 12 āĻāϰ average 4.2āĨ¤
const input = require("fs").readFileSync(0, "utf8");
const tokens = input.split(/\s+/).filter(Boolean);
let at = 0;
const next = () => tokens[at++];
const nextInt = () => Number(next());
const out = [];
// your code: read with next() and nextInt(), push every line of output to out
console.log(out.join("\n"));
min-max-average āύāĻžāĻŽā§ grade āĻšāϝāĻŧāĨ¤ Hidden test-āĻ āĻāĻā§ āĻāĻāĻāĻž āĻŽāĻžāϤā§āϰ āϏāĻāĻā§āϝāĻžāϰ āϤāĻžāϞāĻŋāĻāĻž, āĻāĻŽāύ āϤāĻžāϞāĻŋāĻāĻž āϝāĻžāϰ āĻĒā§āϰāϤāĻŋāĻāĻž āϏāĻāĻā§āϝāĻžāĻ negative, āĻāϰ āĻ
āύā§āĻŽāϤāĻŋāϰ āĻŽāϧā§āϝ⧠āϏāĻŦāĻā§āϝāĻŧā§ āĻŦāĻĄāĻŧ value-āĻā§āϞā§āĨ¤
Alice-āĻāϰ āĻā§āϞāĻž Example 2-āĻāϰ āϏā§āĻŽāĻžāĻāĻž āϤā§āϞ⧠āĻĻā§āϝāĻŧāĨ¤ āĻā§āĻĒāύ āϏāĻāĻā§āϝāĻž āĻĒāĻžāĻāϝāĻŧāĻž āύāĻž āϝāĻžāĻāϝāĻŧāĻž āĻĒāϰā§āϝāύā§āϤ, āĻŦāĻž āĻ āύā§āĻŽāĻžāύ āĻĢā§āϰāĻŋāϝāĻŧā§ āύāĻž āϝāĻžāĻāϝāĻŧāĻž āĻĒāϰā§āϝāύā§āϤ, āĻā§āϞā§āϝāĻŧāĻžāĻĄāĻŧ āĻ āύā§āĻŽāĻžāύ āĻāϰā§āĻ āϝāĻžāϝāĻŧāĨ¤
Input. āĻā§āĻĒāύ āϏāĻāĻā§āϝāĻž s, āϤāĻžāϰāĻĒāϰ āĻ āύā§āĻŽāĻžāύāĻā§āϞā§, input āĻļā§āώ āύāĻž āĻšāĻāϝāĻŧāĻž āĻĒāϰā§āϝāύā§āϤāĨ¤ āĻāĻāĻāĻžāĻ āĻ āύā§āĻŽāĻžāύ āύāĻž āĻĨāĻžāĻāϤ⧠āĻĒāĻžāϰā§āĨ¤
Output. āĻā§āϰāĻŽ āĻ
āύā§āϝāĻžāϝāĻŧā§ āĻĒā§āϰāϤāĻŋāĻāĻž āĻ
āύā§āĻŽāĻžāύā§āϰ āĻāύā§āϝ āĻāĻ āϞāĻžāĻāύāĨ¤ āĻ
āύā§āĻŽāĻžāύāĻāĻžāĻ āĻā§āĻĒāύ āϏāĻāĻā§āϝāĻž āĻšāϞ⧠print āĻāϰ⧠correct in k, āϝā§āĻāĻžāύ⧠k āĻšāϞ⧠āĻāĻ āĻĒāϰā§āϝāύā§āϤ āĻĒāĻĄāĻŧāĻž āĻ
āύā§āĻŽāĻžāύā§āϰ āϏāĻāĻā§āϝāĻž, āĻāĻāĻžāϏāĻšāĨ¤ āϤāĻžāϰāĻĒāϰ āĻĨāĻžāĻŽā§, āĻĒāϰā§āϰ āĻ
āύā§āĻŽāĻžāύāĻā§āϞ⧠āĻāĻĒā§āĻā§āώāĻž āĻāϰā§āĨ¤ āĻā§āĻĒāύ āϏāĻāĻā§āϝāĻž āĻŦāĻĄāĻŧ āĻšāϞ⧠print āĻāϰ⧠higher; āĻā§āĻ āĻšāϞ⧠lowerāĨ¤ āĻ āĻŋāĻ āĻ
āύā§āĻŽāĻžāύ āĻāĻžāĻĄāĻŧāĻžāĻ input āĻļā§āώ āĻšāϞ⧠print āĻāϰ⧠not found after k, āϝā§āĻāĻžāύ⧠k āĻšāϞ⧠āĻĒāĻĄāĻŧāĻž āĻ
āύā§āĻŽāĻžāύā§āϰ āϏāĻāĻā§āϝāĻž, 0-āĻ āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤
Constraints. 1 <= s <= 1000000000; āĻŦāĻĄāĻŧāĻā§āϰ 100000āĻāĻž āĻ āύā§āĻŽāĻžāύ, āĻĒā§āϰāϤāĻŋāĻāĻž 1 āĻĨā§āĻā§ 1000000000āĨ¤
Sample. Input 50, āϤāĻžāϰāĻĒāϰ 25 75 50 10 āĻĻāĻŋāϞ⧠āϤāĻŋāύ āϞāĻžāĻāύ⧠higher, lower āĻāϰ correct in 3āĨ¤
const input = require("fs").readFileSync(0, "utf8");
const tokens = input.split(/\s+/).filter(Boolean);
let at = 0;
const next = () => tokens[at++];
const nextInt = () => Number(next());
const out = [];
// your code: read with next() and nextInt(), push every line of output to out
console.log(out.join("\n"));
guessing-game āύāĻžāĻŽā§ grade āĻšāϝāĻŧāĨ¤ Hidden test-āĻ āĻāĻā§ āĻā§āύ⧠āĻ
āύā§āĻŽāĻžāύ āĻāĻžāĻĄāĻŧāĻž input, āĻĒā§āϰāĻĨāĻŽ āĻ
āύā§āĻŽāĻžāύā§āĻ āĻ āĻŋāĻ, āĻāϰ āĻ āĻŋāĻ āĻ
āύā§āĻŽāĻžāύā§āϰ āĻĒāϰā§āĻ āĻāϰāĻ āĻ
āύā§āĻŽāĻžāύāĨ¤
Kenji āĻāĻžāύāϤ⧠āĻāĻžāϝāĻŧ, āĻāĻāĻāĻž āĻŦāĻĄāĻŧ n āĻĒāϰā§āϝāύā§āϤ āĻāϝāĻŧāĻāĻž prime āĻāĻā§, āĻāϰ āϤāĻžāϰ āĻāĻā§āϰ āĻļā§āώ prime-āĻāĻž āĻā§āύāĻāĻžāĨ¤
Input. āĻāĻāĻāĻž āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻž nāĨ¤
Output. āĻĻā§āĻāĻāĻž āϞāĻžāĻāύ: n-āĻāϰ āϏāĻŽāĻžāύ āĻŦāĻž āĻā§āĻ prime āĻāϝāĻŧāĻāĻž, āĻāϰ āϤāĻžāĻĻā§āϰ āĻŽāϧā§āϝ⧠āϏāĻŦāĻā§āϝāĻŧā§ āĻŦāĻĄāĻŧāĻāĻž, āĻā§āύā§āĻāĻž āύāĻž āĻĨāĻžāĻāϞ⧠(n < 2) noneāĨ¤
Constraints. 1 <= n <= 15000000āĨ¤
Sample. Input 30 āĻĻāĻŋāϞ⧠āĻĻā§āĻ āϞāĻžāĻāύ⧠10 āĻāϰ 29āĨ¤
const input = require("fs").readFileSync(0, "utf8");
const tokens = input.split(/\s+/).filter(Boolean);
let at = 0;
const next = () => tokens[at++];
const nextInt = () => Number(next());
const out = [];
// your code: read with next() and nextInt(), push every line of output to out
console.log(out.join("\n"));
count-primes āύāĻžāĻŽā§ grade āĻšāϝāĻŧāĨ¤ Hidden test-āĻā§āϞ⧠n = 1 āĻĨā§āĻā§ āĻļā§āϰ⧠āĻāϰ⧠āĻ
āύā§āĻŽāϤāĻŋāϰ āϏāĻŦāĻā§āϝāĻŧā§ āĻŦāĻĄāĻŧ n āĻĒāϰā§āϝāύā§āϤ āϝāĻžāϝāĻŧāĨ¤
āϏāĻāϰāĻžāĻāϰ āϝ⧠āĻĒā§āϰāĻļā§āύāĻā§āϞ⧠āĻāϏā§
d <= Math.sqrt(n)āύāĻž āϞāĻŋāĻā§d * d <= nāĻā§āύ?āĻāĻ lesson-āĻāϰ āϏāĻāĻā§āϝāĻžāĻā§āϞā§āϰ āĻāύā§āϝ āĻĻā§āĻā§āĻ āĻāĻāĻ āĻāĻžāϝāĻŧāĻāĻžāϝāĻŧ āĻĨāĻžāĻŽā§āĨ¤
d * dāĻĒā§āϰā§āĻāĻž āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻžāϝāĻŧ āĻĨāĻžāĻā§, āϤāĻžāĻ āĻŦāϰā§āĻāĻŽā§āϞā§āϰ āĻā§āύ⧠āĻā§āϞ āĻāϰāĻž āϤā§āĻŽāĻžāĻā§ āĻāĻŽāĻā§ āĻĻāĻŋāϤ⧠āĻĒāĻžāϰ⧠āύāĻžāĨ¤ Kenji-āϰ āĻĒāĻāύā§āĻĻ āϝ⧠āĻāϤ⧠āĻāĻāĻāĻž function call āĻŦāĻžāĻāĻā§, āĻāĻŋāύā§āϤ⧠āĻāϏāϞ āĻāĻžāϰāĻŖ āύāĻŋāĻā§āĻāϤ āĻĨāĻžāĻāĻžāĨ¤āĻĒā§āϰāϤāĻŋāĻāĻž āϞāĻžāĻāύ
out-āĻ push āĻāϰ⧠āĻāĻāĻŦāĻžāϰ⧠print āĻāϰāĻŋ āĻā§āύ?āĻĒā§āϰāϤāĻŋ āϞāĻžāĻāύ⧠āĻāĻāĻāĻž āĻāϰā§
console.logāĻāϝāĻŧā§āĻ āĻšāĻžāĻāĻžāϰ āϞāĻžāĻāύā§āϰ āĻĒāϰ āϧā§āϰ āĻšāϝāĻŧā§ āϝāĻžāϝāĻŧ, āĻāϰ judge-āĻāϰ test-āĻ āĻāĻ āϞāĻžāĻ āϞāĻžāĻāύāĻ āĻĨāĻžāĻāϤ⧠āĻĒāĻžāϰā§āĨ¤ āϞāĻžāĻāύāĻā§āϞ⧠āĻāĻŽāĻŋāϝāĻŧā§joināĻĻāĻŋāϝāĻŧā§ āĻāĻāĻŦāĻžāϰ⧠print āĻāϰāϞ⧠āϏā§āĻ āĻāĻžāĻŽā§āϞāĻž āύā§āĻāĨ¤ āϤāĻžāĻāĻžāĻĄāĻŧāĻž āĻāϤ⧠āĻĒā§āϰāϤāĻŋāĻāĻž program-āĻāϰ āĻāĻĄāĻŧāύ āĻāĻāĻ āĻĨāĻžāĻā§āĨ¤Sieve āĻāĻŋ āϏāĻŦāϏāĻŽāϝāĻŧ trial division-āĻāϰ āĻā§āϝāĻŧā§ āĻāĻžāϞā§?
āύāĻžāĨ¤ āĻāĻāĻāĻž āĻŽāĻžāϤā§āϰ āϏāĻāĻā§āϝāĻž āϝāĻžāĻāĻžāĻ āĻāϰāϤ⧠trial division-āĻ āϝāĻĨā§āώā§āĻ, āĻāϰ āϤāĻžāϤ⧠āĻŦāĻžāĻĄāĻŧāϤāĻŋ memory āϞāĻžāĻā§ āύāĻžāĨ¤ n āĻĒāϰā§āϝāύā§āϤ āϏāĻŦ prime āϞāĻžāĻāϞ⧠sieve āĻā§āϤā§, āĻāĻŋāύā§āϤ⧠āϏ⧠āĻĒā§āϰāϤāĻŋāĻāĻž āϏāĻāĻā§āϝāĻžāϰ āĻāύā§āϝ āĻāĻāĻāĻž flag āϰāĻžāĻā§, āϤāĻžāĻ n = 15,000,000 āĻŽāĻžāύ⧠āĻĻā§āĻĄāĻŧ āĻā§āĻāĻŋ flagāĨ¤
āĻāĻāĻāĻž
switchāĻāĻŋ string āĻŽā§āϞāĻžāϤ⧠āĻĒāĻžāϰā§?āĻĒāĻžāϰā§āĨ¤ āϏ⧠āĻŽā§āϞāĻžāϝāĻŧ
===āĻĻāĻŋāϝāĻŧā§, āϤāĻžāĻ"tea"āĻŽā§āϞ⧠āĻļā§āϧ⧠āĻšā§āĻŦāĻšā§"tea"text-āĻāϰ āϏāĻžāĻĨā§āĨ¤ āĻŦāĻĄāĻŧ āĻšāĻžāϤā§āϰ āĻ āĻā§āώāϰāĻāϝāĻŧāĻžāϞāĻž"Tea"token āĻāϞ⧠āϝāĻžāϝāĻŧdefault-āĻāĨ¤
āĻŽā§āϞ āĻāĻĨāĻž
- āĻāĻāĻāĻž
ifchain-āĻ āĻĒā§āϰāĻĨāĻŽ true test-āĻāĻžāĻ āĻā§āϤā§, āϤāĻžāĻ āϏāĻŦāĻā§āϝāĻŧā§ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ test āĻŦāϏ⧠āϏāĻŦāĻžāϰ āĻāĻā§; āĻļāĻŦā§āĻĻāĻāĻž āĻāĻĄāĻŧā§ āϤā§āϞāϞ⧠āĻā§āϰāĻŽā§āϰ āĻāĻžāĻŽā§āϞāĻžāĻ āĻĨāĻžāĻā§ āύāĻžāĨ¤ - āĻāĻāĻāĻž loop āĻĻā§āĻ āĻāĻžāϰāĻŖā§ āĻĨāĻžāĻŽāϤ⧠āĻĒāĻžāϰā§: āϤāĻžāϰ āύāĻŋāĻā§āϰ test, āĻāϰ āĻāĻāĻāĻž
breakāĨ¤ āĻā§āύāĻāĻž āĻāĻāϞ, āϏā§āĻāĻž āĻŽāύ⧠āϰāĻžāĻā§ āĻāĻāĻāĻž flagāĨ¤ - Nested loop āĻā§āĻŖ āĻšāϝāĻŧ: n āϏāĻžāϰāĻŋ āĻāϰ n āĻāϞāĻžāĻŽ āĻŽāĻžāύ⧠āĻāĻŋāϤāϰā§āϰ body āĻāϞ⧠n āĻā§āĻŖ n āĻŦāĻžāϰāĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž counter-āĻā§ āϤāĻžāϰ āύāĻŋāĻā§āϰ āύāĻžāĻŽ āĻĻāĻžāĻāĨ¤
- Prime check āĻĨāĻžāĻŽā§
d * d <= n-āĻ āĻāϰ āĻĒā§āϰāĻĨāĻŽ āĻāĻžāĻāĻā§; n āĻĒāϰā§āϝāύā§āϤ āϏāĻŦ prime āĻā§āĻāĻāϤ⧠sieve āĻā§āĻŖāĻŋāϤāĻāĻā§āϞ⧠āĻā§āĻā§ āĻĻā§āϝāĻŧāĨ¤ - āĻāϞāϤāĻŋ value input āĻāĻāĻŦāĻžāϰāĻ āĻĒāĻĄāĻŧā§; minimum āĻŦāĻž maximum āĻāĻŽāύ āĻāĻžāϝāĻŧāĻāĻž āĻĨā§āĻā§ āĻļā§āϰ⧠āĻāϰā§, āϝāĻžāϤ⧠āĻĒā§āϰāĻĨāĻŽ item āϧā§āĻāĻāĻž āĻĻāĻŋāϤ⧠āύāĻž āĻĒāĻžāϰā§āĨ¤
- āĻāϰāĻ āĻāĻā§āϰā§: Under the Hood, jump āĻĻāĻŋāϝāĻŧā§ loop, iterator protocol āĻāϰ āĻāĻāĻāĻž loop lab (Pro)āĨ¤
āĻāϰāĻĒāϰ Kenji-āϰ review āĻŦāϞ⧠"use forEach everywhere", āĻāĻŽāύ āĻāĻāĻāĻž loop-āĻ āϝā§āĻāĻžāĻā§ āĻāĻā§āĻāĻžāĻā§ āĻĨāĻžāĻŽāϤ⧠āĻšāĻŦā§, āĻāϰ lesson 04 āϤāĻŋāύāĻāĻž āĻĒā§āϰāĻļā§āύ āĻĻāĻŋāϝāĻŧā§ āĻ āĻŋāĻ loop-āĻāĻž āĻŦā§āĻā§ āύā§āϝāĻŧāĨ¤
lesson ā§Š āĻļā§āώ
āĻļā§āώ āĻšāϞ⧠āĻāĻŋāĻšā§āύ āĻĻāĻŋāύ, āĻ āĻā§āϰāĻāϤāĻŋ āĻāĻĒāύāĻžāϰ āϏāĻžāĻĨā§ āĻĨāĻžāĻāĻŦā§āĨ¤
āĻĒāϰā§āϰāĻāĻž: āĻā§āύ loop, āĻāϰ āĻāĻāύ if-āĻāϰ āĻā§āϝāĻŧā§ switch āĻāĻžāϞā§