C程序检查数字是否可被其数字之和整除

给定数字n,我们必须检查其位数之和是否除以数字n。为了找出答案,我们必须对所有从单位位置开始的数字求和,然后将数字除以最终的和。

就像我们有一个数字“ 521”一样,因此我们必须找到它的数字总和为“ 5 + 2 + 1 = 8”,但是521不能被8整除而不会留下任何余数。

让我们再举一个“ 60”的例子,其中“ 6 + 0 = 6”可以除以60,并且不会留下任何余数。

示例

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

下面使用的方法如下-

为了解决这个问题,我们必须从输入中获取每个数字并找到一个数字的每个数字的总和,然后检查它是否被数字除。

  • 接受输入

  • 使用取单位位置的每个数字并将其添加到总和变量中,该变量最初应为零

  • 将输入除以数字的总和。

  • 返回结果。

算法

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 "

示例

#include <stdio.h>
//该功能将检查
//给定数字是否可除
//按其数字的总和
int isDivisible(long int num) {
   long int temp = num;
   //查找数字总和
   int sum = 0;
   while (num) {
      int k = num % 10;
      sum = sum + k;
      num = num / 10;
   }
   //检查数字总和是否除以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;
}

输出结果

如果运行上面的代码,它将生成以下输出-

No