3765. Complete Prime Number
Description
You are given an integer num.
A number num is called a Complete Prime Number if every prefix and every suffix of num is prime.
Return true if num is a Complete Prime Number, otherwise return false.
Note:
- A prefix of a number is formed by the first
kdigits of the number. - A suffix of a number is formed by the last
kdigits of the number. - A prime number is a natural number greater than 1 with only two factors, 1 and itself.
- Single-digit numbers are considered Complete Prime Numbers only if they are prime.
Example 1:
Input: num = 23
Output: true
Explanation:
- βββββββPrefixes of
num = 23are 2 and 23, both are prime. - Suffixes of
num = 23are 3 and 23, both are prime. - All prefixes and suffixes are prime, so 23 is a Complete Prime Number and the answer is
true.
Example 2:
Input: num = 39
Output: false
Explanation:
- Prefixes of
num = 39are 3 and 39. 3 is prime, but 39 is not prime. - Suffixes of
num = 39are 9 and 39. Both 9 and 39 are not prime. - At least one prefix or suffix is not prime, so 39 is not a Complete Prime Number and the answer is
false.
Example 3:
Input: num = 7
Output: true
Explanation:
- 7 is prime, so all its prefixes and suffixes are prime and the answer is
true.
Constraints:
1 <= num <= 109
Solutions
Solution 1: Mathematics
We define a function \(\text{is\_prime}(x)\) to determine whether a number \(x\) is prime. Specifically, if \(x < 2\), then \(x\) is not prime; otherwise, we check all integers \(i\) from \(2\) to \(\sqrt{x}\). If there exists some \(i\) that divides \(x\), then \(x\) is not prime; otherwise, \(x\) is prime.
Next, we convert the integer \(\textit{num}\) to a string \(s\), and sequentially check whether the integer corresponding to each prefix and suffix of \(s\) is prime. For prefixes, we construct the integer \(x\) from left to right; for suffixes, we construct the integer \(x\) from right to left. If during the checking process we find that the integer corresponding to some prefix or suffix is not prime, we return \(\text{false}\); if all integers corresponding to prefixes and suffixes are prime, we return \(\text{true}\).
The time complexity is \(O(\sqrt{n} \times \log n)\), and the space complexity is \(O(\log n)\), where \(n\) is the value of the integer \(\textit{num}\).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
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 | |
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 | |
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 | |
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 | |