ได้รับตัวเลข n ตรวจสอบว่ามีหลักใดในตัวเลขที่หาร n ลงตัวหรือไม่
เช่น 128625 หาร 5 ลงตัว และ 5 เป็นหลักหนึ่งของตัวเลข
ตัวอย่าง
Input: 53142 Output: yes (หาร 1, 2, 3 ลงตัว) Input: 223 Output: No (ไม่หาร 2 หรือ 3 ลงตัว)
แนวทาง
- เริ่มจากหลักหน่วย (n % 10)
- ตรวจสอบหารลงตัวหรือไม่
- ตัดหลักหน่วยทิ้ง (n /= 10)
- ทำซ้ำจน n = 0
อัลกอริทึม
Start
ฟังก์ชัน divisible(long long int n):
temp = n
while n != 0:
k = n % 10
if temp % k == 0 return 1
n = n / 10
return 0
main():
n = 654123
if divisible(n) print "Yes" else print "No"
Stop
โค้ดตัวอย่าง
#include <stdio.h>
int divisible(long long int n) {
long long int temp = n;
while (n) {
int k = n % 10;
if (temp % k == 0) return 1;
n /= 10;
}
return 0;
}
int main() {
long long int n = 654123;
if (divisible(n)) printf("Yes\n");
else printf("No\n");
return 0;
}
ผลลัพธ์
Yes