5. Report contents / Зміст звіту
The report is submitted together with the source code. It must contain the following sections. Note that every task explicitly asks for an explanation of the algorithm or reasoning — make these explanations the core of the report.
- Title block — course, laboratory work number and title, student’s name and group, date.
- Objective — a short statement of the goal of the work (see 1purpose.md).
- Brief theory — divisibility and parity, primes, the Euclidean algorithm, the GCD–LCM relation, the Fundamental Theorem of Arithmetic, Euler’s totient, and the structure of a direct proof and of induction (see Lecture 8 — Number theory and Lecture 7 — Methods of proof for the proof techniques).
- Implementation — for each task you completed: the source code, and an explanation of the algorithm/method used (this is required by the task instructions). For Tasks 6 and 8, write out the proof itself (direct proof; base case, hypothesis, inductive step). State the programming language.
- Testing — for each function, a table of inputs and results including the
examples of 4task.md (parity of
25, primality of17,gcd(48,18)=6,56 = 2^3 * 7,lcm(15,20)=60,φ(12)=4,f(3)=16) plus your own cases (e.g. a composite number, coprime and non-coprime pairs, an even and an odd input). - Achieved band — state which band (Easy / Medium / Hard) you reached and which tasks it covers (see 4task.md).
- Complexity — the time complexity of each routine (
isPrime,gcd,lcm,primeFactorization,totient) and a sentence justifying each. - Conclusions — what was implemented, difficulties encountered, and what you learned about number theory and proof.
Submission requirements. The source must compile/run and reproduce the example outputs of 4task.md.