-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathself-dividing-numbers.go
49 lines (46 loc) · 1010 Bytes
/
self-dividing-numbers.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// A self-dividing number is a number that is divisible by every digit it contains.
//
//
// For example, 128 is a self-dividing number because 128 % 1 == 0, 128 % 2 == 0, and 128 % 8 == 0.
//
//
// A self-dividing number is not allowed to contain the digit zero.
//
// Given two integers left and right, return a list of all the self-dividing numbers in the range [left, right].
//
//
// Example 1:
// Input: left = 1, right = 22
// Output: [1,2,3,4,5,6,7,8,9,11,12,15,22]
// Example 2:
// Input: left = 47, right = 85
// Output: [48,55,66,77]
//
//
// Constraints:
//
//
// 1 <= left <= right <= 104
//
//
func selfDividingNumbers(left int, right int) []int {
var sl []int
for left <= right {
if divideNum(left) {
sl = append(sl, left)
}
left++
}
return sl
}
func divideNum(num int) bool {
n:=num
for n!=0 {
r:=n%10
if (r == 0 || num % r !=0) {
return false
}
n = n/10
}
return true
}