## 1317. Convert Integer to the Sum of Two No-Zero Integers

Given an integer `n`. No-Zero integer is a positive integer which doesn't contain any 0 in its decimal representation.

Return a list of two integers `[A, B]` where:

• `A` and `B` are No-Zero integers.
• `A + B = n`

It's guarateed that there is at least one valid solution. If there are many valid solutions you can return any of them.

Example 1:

```Input: n = 2
Output: [1,1]
Explanation: A = 1, B = 1. A + B = n and both A and B don't contain any 0 in their decimal representation.
```

Example 2:

```Input: n = 11
Output: [2,9]
```

Example 3:

```Input: n = 10000
Output: [1,9999]
```

Example 4:

```Input: n = 69
Output: [1,68]
```

Example 5:

```Input: n = 1010
Output: [11,999]
```

Constraints:

• `2 <= n <= 10^4`

## Rust Solution

``````struct Solution;

impl Solution {
fn get_no_zero_integers(n: i32) -> Vec<i32> {
let mut v: Vec<bool> = vec![true; 10000];
v[0] = false;
for i in 0..10 {
for j in 0..10 {
for k in 0..10 {
for l in 0..10 {
let x = i * 1000 + j * 100 + k * 10 + l;
if i != 0 && (j == 0 || k == 0 || l == 0) {
v[x] = false;
}
if j != 0 && (k == 0 || l == 0) {
v[x] = false;
}
if k != 0 && l == 0 {
v[x] = false;
}
}
}
}
}
for a in 1..n {
let b = n - a;
if v[a as usize] && v[b as usize] {
return vec![a, b];
}
}
vec![]
}
}

#[test]
fn test() {
let n = 2;
let res = vec![1, 1];
assert_eq!(Solution::get_no_zero_integers(n), res);
let n = 11;
let res = vec![2, 9];
assert_eq!(Solution::get_no_zero_integers(n), res);
let n = 10000;
let res = vec![1, 9999];
assert_eq!(Solution::get_no_zero_integers(n), res);
let n = 69;
let res = vec![1, 68];
assert_eq!(Solution::get_no_zero_integers(n), res);
let n = 1010;
let res = vec![11, 999];
assert_eq!(Solution::get_no_zero_integers(n), res);
let n = 4102;
let res = vec![111, 3991];
assert_eq!(Solution::get_no_zero_integers(n), res);
}
``````

Having problems with this solution? Click here to submit an issue on github.