ได้รับตัวเลข n ตรวจสอบว่าผลรวมของหลักต่างๆ หาร n ลงตัวหรือไม่
เช่น 521 → 5+2+1=8 แต่ 521 หาร 8 ไม่ลงตัว
60 → 6+0=6 หาร 60 ลงตัว
ตัวอย่าง
Input: 55 Output: No (5+5=10, 55 หาร 10 ไม่ลงตัว) Input: 12 Output: Yes (1+2=3, 12 หาร 3 ลงตัว)
แนวทาง
- รับค่า input
- วนลูปดึงหลักหน่วย (n % 10) บวกสะสมใน sum
- ตัดหลักหน่วย (n /= 10)
- ตรวจสอบ temp % sum == 0
อัลกอริทึม
Start
ฟังก์ชัน isDivisible(long int num):
temp = num, sum = 0
while num != 0:
k = num % 10
sum += k
num /= 10
if temp % sum == 0 return 1
return 0
main():
num = 55
if isDivisible(num) print "yes" else print "no"
Stop
โค้ดตัวอย่าง
#include <stdio.h>
int isDivisible(long int num) {
long int temp = num;
int sum = 0;
while (num) {
int k = num % 10;
sum += k;
num /= 10;
}
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