From 02481656966b0a8dfc95cf3c22bcc049660ff7d4 Mon Sep 17 00:00:00 2001 From: Federico Igne Date: Sat, 26 Dec 2020 17:48:38 +0000 Subject: Move Rust exercises in a subdirectory --- rust/difference-of-squares/src/lib.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 rust/difference-of-squares/src/lib.rs (limited to 'rust/difference-of-squares/src/lib.rs') diff --git a/rust/difference-of-squares/src/lib.rs b/rust/difference-of-squares/src/lib.rs new file mode 100644 index 0000000..4599733 --- /dev/null +++ b/rust/difference-of-squares/src/lib.rs @@ -0,0 +1,14 @@ +/// Implements square of Gauss' formula +pub fn square_of_sum(n: u32) -> u32 { + (n * (n + 1) / 2).pow(2) +} + +/// Implements the formula reported in Wolfram|Alpha at this +/// [link](https://www.wolframalpha.com/input/?i=sum+of+squares&assumption=%7B%22F%22%2C+%22SumOfSquaresOfIntegers%22%2C+%22sumlowerlimit%22%7D+-%3E%221%22&assumption=%7B%22F%22%2C+%22SumOfSquaresOfIntegers%22%2C+%22sumupperlimit2%22%7D+-%3E%22n%22) +pub fn sum_of_squares(n: u32) -> u32 { + n * (1 + n) * (1 + 2 * n) / 6 +} + +pub fn difference(n: u32) -> u32 { + square_of_sum(n) - sum_of_squares(n) +} -- cgit v1.2.3