mirror of
https://github.com/rzmk/ladderz.git
synced 2025-12-19 06:59:25 +00:00
feat: add is_prime
This commit is contained in:
parent
6bbf891052
commit
325e5087b8
2 changed files with 67 additions and 0 deletions
|
|
@ -136,6 +136,38 @@ pub fn get_multiples_in_range(n: u32, end: u32) -> HashSet<u32> {
|
|||
multiples
|
||||
}
|
||||
|
||||
/// Checks if a positive integer `n` is a prime number.
|
||||
///
|
||||
/// A prime number is a positive integer greater than 1 that cannot
|
||||
/// be evenly divisible by any positive integers other than 1 and itself.
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```rust
|
||||
/// use ladderz::pre_algebra::is_prime;
|
||||
///
|
||||
/// assert!(!is_prime(1)); // 1 is not a prime number
|
||||
/// assert!(is_prime(2)); // 2 is a prime number
|
||||
/// assert!(!is_prime(4)); // 4 is not a prime number
|
||||
/// assert!(is_prime(7)); // 7 is a prime number
|
||||
/// ```
|
||||
///
|
||||
/// # Note
|
||||
///
|
||||
/// This function returns `false` for values of `n` less than 2 because, by definition, prime
|
||||
/// numbers must be greater than 1.
|
||||
pub fn is_prime(n: u32) -> bool {
|
||||
if n == 1 {
|
||||
return false;
|
||||
};
|
||||
for num in 2..n {
|
||||
if n % num == 0 {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
true
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
|
|
|||
|
|
@ -199,6 +199,41 @@
|
|||
"assert get_multiples_in_range(3, 20) == {3, 6, 9, 12, 15, 18}\n",
|
||||
"assert get_multiples_in_range(5, 50) == {5, 10, 15, 20, 25, 30, 35, 40, 45, 50}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"**Write a program that determines whether a positive integer `n` is prime.**\n",
|
||||
"\n",
|
||||
"For example for `n = 7`, the output of `is_prime(7)` may be:\n",
|
||||
"\n",
|
||||
"```\n",
|
||||
"True\n",
|
||||
"```"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 13,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def is_prime(n: int) -> bool:\n",
|
||||
" if n == 1: return False\n",
|
||||
" for num in range(2, n):\n",
|
||||
" if n % num == 0:\n",
|
||||
" return False\n",
|
||||
" return True\n",
|
||||
"\n",
|
||||
"assert is_prime(1) == False\n",
|
||||
"assert is_prime(2) == True\n",
|
||||
"assert is_prime(3) == True\n",
|
||||
"assert is_prime(4) == False\n",
|
||||
"assert is_prime(24) == False\n",
|
||||
"assert is_prime(59) == True\n",
|
||||
"assert is_prime(72) == False"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue