Solved ProjectEuler/028,048
This commit is contained in:
12
ProjectEuler/005/solve.lua
Normal file
12
ProjectEuler/005/solve.lua
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
i=0
|
||||||
|
while(true) do
|
||||||
|
i = i + 20
|
||||||
|
div = 19
|
||||||
|
while((i % div) == 0) do
|
||||||
|
div = div - 1
|
||||||
|
if(div == 0) then
|
||||||
|
print(i)
|
||||||
|
os.exit()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
32
ProjectEuler/028/desc.yml
Normal file
32
ProjectEuler/028/desc.yml
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
title: What is the sum of both diagonals in a 1001 by 1001 spiral?
|
||||||
|
url: http://projecteuler.net/problem=28
|
||||||
|
|
||||||
|
desc: |
|
||||||
|
Starting with the number 1 and moving to the right in a clockwise direction a 5 by 5 spiral is formed as follows:
|
||||||
|
21 22 23 24 25
|
||||||
|
20 7 8 9 10
|
||||||
|
19 6 1 2 11
|
||||||
|
18 5 4 3 12
|
||||||
|
17 16 15 14 13
|
||||||
|
It can be verified that the sum of the numbers on the diagonals is 101.
|
||||||
|
What is the sum of the numbers on the diagonals in a 1001 by 1001 spiral formed in the same way?
|
||||||
|
|
||||||
|
solution: |
|
||||||
|
Step around in the spiral (add 2 - 3 times, then add 4 - 3times, then 6 - times etc)
|
||||||
|
|
||||||
|
solutions:
|
||||||
|
solve.php:
|
||||||
|
desc: Basic solution
|
||||||
|
language: php
|
||||||
|
solve.rb:
|
||||||
|
desc: Basic solution
|
||||||
|
language: ruby
|
||||||
|
solve.c:
|
||||||
|
desc: ANSI C solution (Tested with TCC)
|
||||||
|
language: c
|
||||||
|
solve.js:
|
||||||
|
desc: NodeJS solution
|
||||||
|
language: javascript
|
||||||
|
solve.lua:
|
||||||
|
desc: Basic solution
|
||||||
|
language: lua
|
19
ProjectEuler/028/solve.c
Normal file
19
ProjectEuler/028/solve.c
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#define SIZE 1001
|
||||||
|
#define SIDES 4
|
||||||
|
|
||||||
|
int main( )
|
||||||
|
{
|
||||||
|
|
||||||
|
int sum = 1;
|
||||||
|
int result=1;
|
||||||
|
int addition;
|
||||||
|
for(addition = 2; addition <= SIZE; addition+=2) {
|
||||||
|
int cside;
|
||||||
|
for(cside = 0; cside < SIDES; cside++) {
|
||||||
|
sum += addition;
|
||||||
|
result += sum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
printf( "%i", result );
|
||||||
|
}
|
13
ProjectEuler/028/solve.js
Normal file
13
ProjectEuler/028/solve.js
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
SIZE = 1001;
|
||||||
|
SIDES = 4
|
||||||
|
|
||||||
|
sum = 1;
|
||||||
|
result=1;
|
||||||
|
for(addition = 2; addition <= SIZE; addition+=2) {
|
||||||
|
for(cside = 0; cside < SIDES; cside++) {
|
||||||
|
sum += addition;
|
||||||
|
result += sum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(result);
|
12
ProjectEuler/028/solve.lua
Normal file
12
ProjectEuler/028/solve.lua
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
SIZE = 1001;
|
||||||
|
SIDES = 4;
|
||||||
|
sum = 1;
|
||||||
|
result=1;
|
||||||
|
for addition = 2,SIZE,2 do
|
||||||
|
for cside=0,(SIDES-1) do
|
||||||
|
sum = sum + addition;
|
||||||
|
result = result + sum;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
print(result)
|
12
ProjectEuler/028/solve.php
Normal file
12
ProjectEuler/028/solve.php
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<?php
|
||||||
|
define('SIZE',1001);
|
||||||
|
define('SIDES',4);
|
||||||
|
$sum = 1;
|
||||||
|
$result=1;
|
||||||
|
for($addition = 2; $addition <= SIZE; $addition+=2) {
|
||||||
|
for($cside = 0; $cside < SIDES; $cside++) {
|
||||||
|
$sum += $addition;
|
||||||
|
$result += $sum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
echo $result;
|
12
ProjectEuler/028/solve.rb
Normal file
12
ProjectEuler/028/solve.rb
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
|
||||||
|
SIZE = 1001
|
||||||
|
SIDES = 4
|
||||||
|
sum = 1;
|
||||||
|
result=1;
|
||||||
|
(2...SIZE).step(2) { |add|
|
||||||
|
SIDES.downto(1) {
|
||||||
|
sum += add;
|
||||||
|
result += sum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
puts result
|
17
ProjectEuler/048/desc.yml
Normal file
17
ProjectEuler/048/desc.yml
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
title: Find the last ten digits of 11 + 22 + ... + 10001000.
|
||||||
|
url: http://projecteuler.net/problem=48
|
||||||
|
|
||||||
|
desc: |
|
||||||
|
The series, 1^1 + 2^2 + 3^3 + ... + 10^10 = 10405071317.
|
||||||
|
Find the last ten digits of the series, 1^1 + 2^2 + 3^3 + ... + 1000^1000.
|
||||||
|
|
||||||
|
solution: |
|
||||||
|
Bruteforce
|
||||||
|
|
||||||
|
solutions:
|
||||||
|
solve.php:
|
||||||
|
desc: Using BCMath to cope with large numbers
|
||||||
|
language: php
|
||||||
|
solve.rb:
|
||||||
|
desc: Basic solution
|
||||||
|
language: ruby
|
7
ProjectEuler/048/solve.php
Normal file
7
ProjectEuler/048/solve.php
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<?php
|
||||||
|
define('MAX',1000);
|
||||||
|
$sum = 0;
|
||||||
|
for($c =1; $c <= MAX;$c++) {
|
||||||
|
$sum = bcadd($sum,bcpow($c,$c));
|
||||||
|
}
|
||||||
|
echo substr($sum,-10,10);
|
6
ProjectEuler/048/solve.rb
Normal file
6
ProjectEuler/048/solve.rb
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
MAX = 1000
|
||||||
|
sum = 0
|
||||||
|
(1..MAX).each do |digit|
|
||||||
|
sum += digit**digit
|
||||||
|
end
|
||||||
|
puts sum.to_s[-10..-1]
|
Reference in New Issue
Block a user