Bài toán 1: Tìm chữ số có giá trị lớn nhất trong số nguyên dương n gồm k chữ số
Input:
- Số nguyên dương n gồm k chữ số.
Output:
- Chữ số có giá trị lớn nhất trong số nguyên dương n.
Thuật giải:
- Chuyển số nguyên dương n thành chuỗi để có thể xử lý từng chữ số.
- Khởi tạo một biến max_digit và gán giá trị ban đầu là 0.
- Duyệt qua từng chữ số trong chuỗi:
- Chuyển chữ số thành số nguyên và so sánh với max_digit.
- Nếu chữ số đó lớn hơn max_digit, gán max_digit bằng chữ số đó.
- Trả về giá trị max_digit là kết quả.
function findMaxDigit(n)
max_digit = 0
digit_string = convertToString(n)
for digit in digit_string:
current_digit = convertToInt(digit)
if current_digit > max_digit:
max_digit = current_digit
return max_digit
Bài toán 2: Đếm số lượng ước số chẳn của số nguyên dương n
Input:
Output:
- Số lượng ước số chẳn của số nguyên dương n.
Thuật giải:
- Khởi tạo một biến count và gán giá trị ban đầu là 0.
- Duyệt qua từng số từ 1 đến n:
- Kiểm tra xem số đó có phải là ước số của n hay không.
- Nếu số đó chia hết cho n và là số chẳn, tăng biến count lên 1.
- Trả về giá trị count là kết quả.
function countEvenDivisors(n)
count = 0
for i from 1 to n:
if n % i == 0 and i % 2 == 0:
count = count + 1
return count
Bài toán 3: Tìm ước chung lớn nhất của hai số nguyên a và b
Input:
Output:
- Ước chung lớn nhất của hai số a và b.
Thuật giải:
- Nếu a hoặc b bằng 0, trả về giá trị tuyệt đối của a + b.
- Khởi tạo biến temp và gán giá trị bằng b.
- Gán b = a % b và a = temp.
- Lặp lại bước 2 và 3 cho đến khi b bằng 0.
- Trả về giá trị tuyệt đối của a là kết quả.
function findGreatestCommonDivisor(a, b)
if a == 0 or b == 0:
return abs(a + b)
temp = b
b = a % b
a = temp
return abs(a)