I did not originally look to see exactly how far one could go. It looks like, IF one is careful in the important expression, you should be able to get to 3329020. I'd expect that the code I'd write that would solve this to go as far as 3329020 would employ an initial test to know if n is even or odd, changing the expression I'd write depending on the parity of n. Of course that branch would also increase the complexity, so raising the Cody score.
Can someone point me in the right direction?
n = 1e5;
y_correct = uint64(500010000050000);
I get 500010000050005. I do not know how to go beyond double precision.
function y = cubesLessSquare(n)
% Formula
N = (((sum((1:n).^3)*2 - sum(1:n)^2)*2/n))
% double to char
C = sprintf('%f',N)
% char to vector
Y = C - '0'
% take out the dot and the numbers after the dot
Dot = find(Y<0)
Y([Dot:end]) = []
% join the the numbers
Z = sprintf('%d',Y)
% make to double
y = str2num(Z)
end
This appears to be true only for sequences of numbers starting from 1 and some combinations of these sequences.
unbelievable!get it
it is exactly the right way to solve this one.
Could you please explain a bit about how the problem was converted to a polynomial function?
works for n up to 3329020
works for n up to 2642245, so it doesn't use the full potential of the uint64
isequal ignores the data type of the values in determining whether they are equal.
isequal(uint64(15503197751395200),15503197751395199,15503197751395201,15503197751395200)
flintmax('double') = 2^53 < 15503197751395200
eps(15503197751395200) = 2
Big letters, small letters and a bit of luck.
2446 Solvers
239 Solvers
Side of an equilateral triangle
3335 Solvers
Is this triangle right-angled?
3486 Solvers
357 Solvers
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!