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