Cho một số num, nhiệm vụ là tính các ước số của số đó và đếm xem có bao nhiêu ước số có ít nhất một chữ số trùng với chữ số của num.
Đầu vào – num = 24
Đầu ra – Số lượng là 4
Giải thích – Các bước thực hiện:
- Tính các ước số của số cho trước.
- Các ước của 24: 1, 2, 3, 4, 6, 8, 12, 24
- Kiểm tra ước nào có ít nhất một chữ số trùng với chữ số của số ban đầu.
- 2, 4, 12, 24 là các ước chứa chữ số trùng khớp.
Đầu vào – num = 10
Đầu ra – Số lượng là 2
Giải thích – Các bước thực hiện:
- Tính các ước số.
- Các ước của 10: 1, 2, 5, 10
- Kiểm tra chữ số chung.
- 1 và 10 là các ước chứa chữ số trùng khớp.
Ví dụ
package test;
import java.util.*;
import java.util.Scanner;
public class Testdigit {
static int digitCheck(int m, int arr[]) {
while (m > 0) {
if (arr[m % 10] == 1) {
return 1;
}
m = m / 10;
}
return 0;
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int arr[] = new int[10];
int m = n;
while (m > 0) {
arr[m % 10] = 1;
m = m / 10;
}
int count = 0;
for (int i = 1; i <= Math.sqrt(n); i++) {
if (n % i == 0) {
if (digitCheck(i, arr) == 1) {
count++;
}
if (n / i != i) {
if (digitCheck(n / i, arr) == 1) {
count++;
}
}
}
}
System.out.println(count);
}
}
Kết quả
Nhập số bất kỳ: 24 Số lượng 5