Cryptography

Assignment 3

Bài tập 4.1 SumOfDigits

Viết hàm có tham số đầu vào là số nguyên dương bất kỳ SumOfDigits(ulong number): ulong, hàm trả về tổng các chữ số

InputOutput
123451 + 2 + 3 + 4 + 5 = 15

Bài tập 4.2 InverseDigits

Viết hàm có tham số đầu vào là một số nguyên InverseDigits(ulong number): ulong, hàm trả về số nghịch đảo các chữ số đầu vào

InputOutput
123456789987654321

Bài tập 4.3 IsPalindromeNumber

Viết hàm có tham số đầu vào là một số nguyên IsPalindromeNumber(ulong number): bool, hàm trả về kết quả số đầu vào có phải là số đối xứng không

InputOutput
12321true
12343false

Bài tập 4.4 Power

Viết hàm để tính lũy thừa nguyên của một số nguyên đầu vào Power(uint a, uint n): ulong

$$a ^ n$$

InputOutput
an
3327

Bài tập 4.5 PowerMod

Viết hàm PowerMod(ulong a, ulong n, ulong m): ulong theo công thức sau:

$$a ^ n \text{mod k}$$

InputOutput
anm
35277

Bài tập 4.6 GCD

Viết hàm tìm ước chung lớn nhất của 2 số nguyên đầu vào, GCD(ulong a, ulong b): ulong

InputOutput
an
24273

Bài tập 4.7 GenerateInvertible(ulong n)

Viết hàm sinh số ngẫu nhiên e có giá trị nghịch đảo mod n. Số e có giá trị nghịch đảo là số có GCD(e, n) = 1

InputOutput
GenerateInvertible(n)
263
267

Bài tập 4.8 IsPrime

Viết hàm kiểm tra 1 số nguyên đầu vào có phải là số nguyên tố không, IsPrime(ulong a): bool

InputOutput
29true
121false

Bài tập 4.9 GeneratePrime

Viết hàm sinh số nguyên tố ngẫu nhiên GeneratePrime(): ulong

Bài tập 4.10 tính s và d

Viết hàm nhập vào 1 số chẵn bất ký tính s (số lần lặp chữ số chẵn), d là số lẻ cuối cùng

Ví dụ
InputOutputExplain
40 s = 3 d = 5 $$40 = 5 * 2 ^ 3$$
64 s = 6 d = 1 $$ 64 = 1 * 2 ^ 6$$

Bài tập 4.11

Bố cho Lan n viên kẹo Cứ k vỏ kẹo thì đổi 1 viên kẹo mới. Viết chương trình tính số kẹo mà Lan có thể ăn được bao nhiêu viên kẹo.

Input Output
n k
20 3 29

Bài tập 4.12

Viết chương trình cho bài toán đong nước cho 2 bình rỗng x và y đổ qua đổ lại làm sao cho đong được z lít nước (z = n * ucln(x, y))

Ví dụ:

xyz
534
754
864
12710

Bài tập 4.13: ModInverse

Viết hàm ulong ModInverse(ulong e, ulong m) tính nghịch đảo của e trong mod m

Tìm d thỏa mãn công thức sau:

$$e \cdot d \mod{m}$$

Input Output
e m d
3 26 9

Bài tập 4.14: Chữ số tăng dần

Hãy kiểm tra các chữ số của số nguyên dương n có tăng dần từ trái sang phải hay không

Input Output
123568 true
1234234 false