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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
//! A list of primes and semiprimes that are also fibonacci numbers.
//!
//! Determined with :
//! ```rust,ingore
//! use std::collections::HashSet;
//! use std::io::Write;
//! // PRIMES
//!
//! let mut primes = vec![true; 65536];
//! for i in 2..=256 {
//! if primes[i] {
//! let mut j = i * i;
//! while j < 65536 {
//! primes[j] = false;
//! j += i;
//! }
//! }
//! }
//! primes[0] = false;
//!
//! let mut prime_nums = Vec::new();
//!
//! for (i, &v) in primes.iter().enumerate() {
//! if v {
//! prime_nums.push(i);
//! }
//! }
//!
//! // SEMIPRIMES AND PRIMES
//!
//! let mut semiprimes_set = HashSet::new();
//!
//! for i in 0..prime_nums.len() {
//! for j in i..prime_nums.len() {
//! let i = prime_nums[i];
//! let j = prime_nums[j];
//!
//! semiprimes_set.insert(i * j);
//! }
//! }
//!
//! // FIBONACCI
//!
//! let mut fibonacci_nums = Vec::new();
//!
//! let mut a = 0;
//! let mut b = 1;
//!
//! while b < 65536 {
//! fibonacci_nums.push(b);
//!
//! let c = a + b;
//! a = b;
//! b = c;
//! }
//!
//! // FIBONACCI PRIMES AND SEMIPRIMES
//!
//! let mut fibonacci_semiprimes = HashSet::new();
//!
//! for i in fibonacci_nums.iter() {
//! if semiprimes_set.contains(i) {
//! fibonacci_semiprimes.insert(*i);
//! }
//! }
//!
//! // Sort
//!
//! let mut fibonacci_semiprimes_list: Vec<usize> = fibonacci_semiprimes.iter().copied().collect();
//! fibonacci_semiprimes_list.sort();
//!
//! // Construct a function's code
//! let mut fn_code = "matches!(n, ".to_string();
//!
//! for n in &fibonacci_semiprimes_list {
//! fn_code.push_str(&format!("{n} | "));
//! }
//!
//! // Pop 3 characters (` | `)
//! fn_code.pop();
//! fn_code.pop();
//! fn_code.pop();
//!
//! fn_code.push(')');
//!
//! // Write down here
//! let mut file = std::fs::OpenOptions::new()
//! .append(true)
//! .open(file!())
//! .expect("couldn't open its own path as a file");
//!
//! println!(
//! "\n// CODE:\n
//! /// A sorted list of [`u16`] primes and semprimes that are also fibonacci numbers.
//! ///
//! /// The list of numbers is as follows: 1, 2, 3, 5, 13, 21, 34, 55, 89, 233, 377, 1597, 4181, 17711, 28657
//! pub const FIB_PRIME_AND_SEMIPRIME_LIST_U16: [u16; {len}] = {:?};
//! /// Checks if a [`u16`] is a prime or semiprime and a fibonacci number.
//! ///
//! /// The list of numbers is as follows: 1, 2, 3, 5, 13, 21, 34, 55, 89, 233, 377, 1597, 4181, 17711, 28657
//! pub const fn is_fib_prime_or_semiprime_u16(n: u16) -> bool {{
//! {fn_code}
//! }}
//! ",
//! fibonacci_semiprimes_list,
//! len = fibonacci_semiprimes_list.len()
//! )
//! ```
/// A sorted list of [`u16`] primes and semprimes that are also fibonacci numbers.
///
/// The list of numbers is as follows: 1, 2, 3, 5, 13, 21, 34, 55, 89, 233, 377, 1597, 4181, 17711, 28657
pub const _FIB_PRIME_AND_SEMIPRIME_LIST_U16: = ;
/// Checks if a [`u16`] is a prime or semiprime and a fibonacci number.
///
/// The list of numbers is as follows: 1, 2, 3, 5, 13, 21, 34, 55, 89, 233, 377, 1597, 4181, 17711, 28657
pub const