Skip to content

Commit ee345dc

Browse files
Add square_pyramidal_numbers (#524)
1 parent 6a1c2a6 commit ee345dc

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

src/math/mod.rs

+2
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ pub mod sieve_of_eratosthenes;
3939
mod signum;
4040
mod simpson_integration;
4141
mod sine;
42+
mod square_pyramidal_numbers;
4243
mod square_root;
4344
mod sum_of_digits;
4445
mod trial_division;
@@ -91,6 +92,7 @@ pub use self::sieve_of_eratosthenes::sieve_of_eratosthenes;
9192
pub use self::signum::signum;
9293
pub use self::simpson_integration::simpson_integration;
9394
pub use self::sine::sine;
95+
pub use self::square_pyramidal_numbers::square_pyramidal_number;
9496
pub use self::square_root::{fast_inv_sqrt, square_root};
9597
pub use self::sum_of_digits::{sum_digits_iterative, sum_digits_recursive};
9698
pub use self::trial_division::trial_division;

src/math/square_pyramidal_numbers.rs

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// https://en.wikipedia.org/wiki/Square_pyramidal_number
2+
// 1² + 2² + ... = ... (total)
3+
4+
pub fn square_pyramidal_number(n: u64) -> u64 {
5+
n * (n + 1) * (2 * n + 1) / 6
6+
}
7+
8+
#[cfg(test)]
9+
mod tests {
10+
11+
use super::*;
12+
13+
#[test]
14+
fn test0() {
15+
assert_eq!(0, square_pyramidal_number(0));
16+
assert_eq!(1, square_pyramidal_number(1));
17+
assert_eq!(5, square_pyramidal_number(2));
18+
assert_eq!(14, square_pyramidal_number(3));
19+
}
20+
}

0 commit comments

Comments
 (0)