Project Euler: Problem 6

Problem: Find the difference between the sum of the square of the first 100 natural numbers, and the square of the sum of the first 100 natural numbers.

Solution: PHP has three functions which are useful here:

  • range: Creates an array of elements between start and end points (e.g. 1 and 100).
  • array_sum: Returns the sum of all the elements in an array.
  • array_map: Calls a function on every element of an array.

We use range to generate an array of numbers, array_sum to find the sum and square it, and array_map to find the squares and then array_sum to sum them.

<?php

declare(strict_types=1);
error_reporting(E_ALL);

$numbers = range(1, 100);
$square_of_sum = array_sum($numbers) ** 2;
$sum_of_squares = array_sum(array_map(function($n) {
    return $n ** 2;
}, $numbers));

$diff = abs($square_of_sum - $sum_of_squares);

print("$diff\n");

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.