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