Added the answer to Problem 12

This commit is contained in:
2018-09-26 23:34:52 -04:00
parent ee4d41158c
commit 3a748680b1

51
ProjectEuler/Problem12.m Normal file
View File

@@ -0,0 +1,51 @@
%ProjectEuler/Problem12.m
%This is a script to answer Problem 12 for Project Euler
%What is the value of the first triangle number to have over five hundred divisors?
%Setup your variables
counter = 3500; %To hold the current number you have counted up to
number = 0; %To hold the current triangle number
found = false; %To tell when the answer has been found
numDivisors = 0;
maxDivisors = 0;
maxCounter = 0;
startTime = clock();
while(~found)
%Get your next triangle number
number = sym(sum([1:counter]))
%See if it has 500 divisors
numDivisors = size(divisors(number))(2)
if(numDivisors > maxDivisors)
maxDivisors = numDivisors
maxCounter = counter
end
if(numDivisors > 500)
found = true;
else
counter = counter + 1
end
end
endTime = clock();
%Print your result
totalTime = etime(endTime, startTime)
topNumber = counter
double(number)
%Cleanup your variables
clear counter;
clear number;
clear found;
clear topNumber;
clear startTime;
clear endTime;
clear totalTime;
clear numDivisors;
clear maxDivisors;
clear maxCounter;
%This will take 6-7 hours to run. I got the C++ answer in 2.8 seconds
%Try to find a more efficient way to run this