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 tổng các chữ số của nó hay không

Cho một số n, chúng ta phải kiểm tra xem tổng các chữ số của nó có chia cho số n hay không. Để tìm ra chúng ta phải tính tổng tất cả các số bắt đầu từ hàng đơn vị và sau đó chia số với tổng cuối cùng.

Giống như chúng ta có một số “521” vì vậy chúng ta phải tìm tổng của chữ số đó sẽ là “5 + 2 + 1 =8” nhưng 521 không chia hết cho 8 mà không để lại bất kỳ phần dư nào.

Hãy lấy một ví dụ khác “60” trong đó “6 + 0 =6” có thể chia 60 và sẽ không để lại bất kỳ phần dư nào.

Ví dụ

Input: 55
Output: No
Explanation: 5+5 = 10; 55 not divisible by 10
Input: 12
Output: Yes
Explanation: 1+2 = 3; 12 is divisible by 3

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

Để giải quyết vấn đề này, chúng ta phải lấy từng chữ số từ đầu vào và tìm tổng của mỗi chữ số của một số, sau đó kiểm tra xem nó có đang chia số hay không.

  • Nhận thông tin đầu vào
  • Lấy từng số từ vị trí đơn vị bằng cách sử dụng và thêm nó vào một biến tổng ban đầu phải bằng 0
  • Chia đầu vào với tổng của một số.
  • Trả lại kết quả.

Thuật toán

In function int isDivisible(long int num)
   Step 1-> Declare and initialize temp = num, sum = 0
   Step 2-> Loop While num
      Declare and initialize k as num % 10
   Set sum as sum + k
      Set num as num / 10
   End Loop
   Step 3-> If temp % sum == 0 then,
      Return 1
   Step 4-> Return 0
      End function
In main()
   Step 1-> Declare and initialize num as 55
   Step 2-> If isDivisible(num) then,
      Print "yes "
   Step 3-> Else
Print "no "

Ví dụ

#include <stdio.h>
// This function will check
// whether the given number is divisible
// by sum of its digits
int isDivisible(long int num) {
   long int temp = num;
   // Find sum of digits
   int sum = 0;
   while (num) {
      int k = num % 10;
      sum = sum + k;
      num = num / 10;
   }
   // check if sum of digits divides num
   if (temp % sum == 0)
      return 1;
      return 0;
}
int main() {
   long int num = 55;
   if(isDivisible(num))
      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 -

No