# 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. 1. **Title block** — course, laboratory work number and title, student's name and group, date. 2. **Objective** — a short statement of the goal of the work (see [1purpose.md](1purpose.md)). 3. **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](../../Lectures/CDM-L08.md) and [Lecture 7 — Methods of proof](../../Lectures/CDM-L07.md) for the proof techniques). 4. **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. 5. **Testing** — for each function, a table of inputs and results including the examples of [4task.md](4task.md) (parity of `25`, primality of `17`, `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). 6. **Achieved band** — state which band (Easy / Medium / Hard) you reached and which tasks it covers (see [4task.md](4task.md)). 7. **Complexity** — the time complexity of each routine (`isPrime`, `gcd`, `lcm`, `primeFactorization`, `totient`) and a sentence justifying each. 8. **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](4task.md).