Computer >> Máy Tính >  >> Lập trình >> Java

Đếm ước số của n có ít nhất một chữ số chung với n trong Java

Chúng ta được cung cấp một số, giả sử là num và nhiệm vụ là tính ước số của một số nhất định, từ đó đếm các ước số của num có ít nhất một chữ số chung với n.

Đầu vào - num =24

Đầu ra - Số đếm là 4

Giải thích - chúng tôi sẽ thực hiện các bước sau -

  • Trước hết, hãy tính các ước của một số nhất định

    • Các số chia của 24 là - 1, 2, 3, 4, 6, 8, 12, 24

  • Thứ hai, kiểm tra ước số nào có ít nhất một chữ số khớp với các chữ số của một số

    • 2, 4, 12, 24 là các ước có chứa chữ số khớp với các chữ số trong một số

Đầu vào - num =10

Đầu ra - Số đếm là 2

Giải thích - chúng tôi sẽ thực hiện các bước sau -

  • Trước hết, hãy tính các ước của một số nhất định

    • Các ước số của 24 là:1, 2, 5, 10

  • Thứ hai, kiểm tra ước số nào có ít nhất một chữ số khớp với các chữ số của một số

    • 1 và 10 là các ước số chứa chữ số khớp với các chữ số trong một số.

Ví dụ

package test;
import java.util.*;
import java.util.List;
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(ans);
   }
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, chúng ta sẽ nhận được kết quả sau -

Enter any number: 24
Count 5