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

C Chương trình kiểm tra xem một số có chia hết cho bất kỳ chữ số nào của nó hay không

Cho một số n, nhiệm vụ là tìm xem có chữ số nào trong số đó chia hết cho số đó hay không. Giống như chúng ta được cho một số 128625 chia hết cho 5 cũng có trong số đó.

Ví dụ

Input: 53142
Output: yes
Explanation: This number is divisible by 1, 2 and 3
which are the digits of the number
Input: 223
Output: No
Explanation: The number is not divisible by either 2 or 3

Phương pháp được sử dụng bên dưới như sau -

  • Chúng tôi sẽ bắt đầu từ địa điểm đơn vị và lấy số hiệu của địa điểm đơn vị.
  • Kiểm tra xem số đó có chia hết được hay không
  • Chia số có 10
  • Thực hiện bước 1 cho đến khi con số là 0

Thuật toán

Start
In function int divisible(long long int n)
   Step 1-> Declare and initialize temp = n
   Step 2 -> Loop while n {
      Set k as n % 10
      If temp % k == 0 then,
         Return 1
      Set n = n/ 10
   End loop
   Return 0
In Function int main()
   Step 1-> Declare and initialize n = 654123
   Step 2-> If (divisible(n)) then,
      Print "Yes”
   Step 3-> Else
   Print "No”

Ví dụ

#include <stdio.h>
int divisible(long long int n) {
   long long int temp = n;
   // check if any of digit divides n
   while (n) {
      int k = n % 10;
      if (temp % k == 0)
         return 1;
         n /= 10;
   }
   return 0;
}
int main() {
   long long int n = 654123;
   if (divisible(n)) {
      printf("Yes\n");
   }
   else
      printf("No\n");
   return 0;
}

Đầu ra

Nếu chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

Yes