aboutsummaryrefslogtreecommitdiffstats
path: root/06-Sum-Square-Difference/sumsq.c
diff options
context:
space:
mode:
Diffstat (limited to '06-Sum-Square-Difference/sumsq.c')
-rw-r--r--06-Sum-Square-Difference/sumsq.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/06-Sum-Square-Difference/sumsq.c b/06-Sum-Square-Difference/sumsq.c
new file mode 100644
index 0000000..1de2ebe
--- /dev/null
+++ b/06-Sum-Square-Difference/sumsq.c
@@ -0,0 +1,20 @@
+#include <stdio.h>
+
+// Find the difference between (1+2+3+...+100)^2 and (1^2+2^2+3^2+...+100^2)
+// I used another math trick here:
+// The sum up to a number can be found using Gauss' Trick:
+// 1 + 2 + 3 + ... + 10 -> (1+9) + (2+8) + (3+7) + (4+6) + 10 + 5 -> 5*10 +5
+// In general : (n/2)(n+1)
+
+int main() {
+ long sqsum = 50 * 101;
+ sqsum *=sqsum;
+ printf("The square of the sum is: %lu\n", sqsum);
+ long sumsq = 0;
+ for(long i = 1; i <= 100; i++) {
+ sumsq += i * i;
+ }
+ printf("The sum of the squares is: %lu\n", sumsq);
+ printf("Difference: %lu\n", sqsum - sumsq);
+ return 0;
+}