Go•self-dividing-numbers/solution.go
package main
func selfDividingNumbers(left int, right int) []int {
result := []int{}
for value := left; value <= right; value++ {
remaining, valid := value, true
for remaining > 0 {
digit := remaining % 10
if digit == 0 || value%digit != 0 {
valid = false
break
}
remaining /= 10
}
if valid {
result = append(result, value)
}
}
return result
}
Python•self-dividing-numbers/solution.py
class Solution:
def selfDividingNumbers(self, left: int, right: int) -> list[int]:
result: list[int] = []
for value in range(left, right + class="syntax-number">1):
remaining = value
while remaining:
digit = remaining % class="syntax-number">10
if digit == class="syntax-number">0 or value % digit: break
remaining class=class="syntax-string">"syntax-comment">//= class="syntax-number">10
else: result.append(value)
return result
TypeScript•self-dividing-numbers/solution.ts
function selfDividingNumbers(left: number, right: number): number[] {
const result: number[] = [];
for (let value = left; value <= right; value += class="syntax-number">1) {
let remaining = value;
let valid = true;
while (remaining > class="syntax-number">0) { const digit = remaining % class="syntax-number">10; if (digit === class="syntax-number">0 || value % digit !== class="syntax-number">0) { valid = false; break; } remaining = Math.floor(remaining / class="syntax-number">10); }
if (valid) result.push(value);
}
return result;
}