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