Cody

# Problem 42913. Pseudo Square Root (Inspired by Project Euler 266)

Solution 1705899

Submitted on 11 Jan 2019
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

### Test Suite

Test Status Code Input and Output
1   Pass
x = 12;y_correct = 3; assert(isequal(PSR(x),y_correct))

ans = 3

2   Pass
x = 3102;y_correct = 47; assert(isequal(PSR(x),y_correct))

ans = 47

3   Pass
x=10000;y_correct = 100; assert(isequal(PSR(x),y_correct))

ans = 100

4   Fail
x=1308276133167003;y_correct = 36105377; assert(isequal(PSR(x),y_correct))

Maximum variable size allowed by the program is exceeded. Error in PSR (line 2) x./(2:x); Error in Test4 (line 2) assert(isequal(PSR(x),y_correct))

5   Fail
x=6469693230;y_correct = 79534; assert(isequal(PSR(x),y_correct))

Requested 6469693229x1 (48.2GB) array exceeds maximum array size preference. Creation of arrays greater than this limit may take a long time and cause MATLAB to become unresponsive. See array size limit or preference panel for more information. Error in PSR (line 2) x./(2:x); Error in Test5 (line 2) assert(isequal(PSR(x),y_correct))

6   Fail
p=cumprod(1:10); y=arrayfun(@(p) PSR(p),p); y_correct=[1 1 2 4 10 24 70 192 576 1890]; assert(isequal(y,y_correct))

ans = 1×0 empty double row vector

Error using arrayfun Non-scalar in Uniform output, at index 1, output 1. Set 'UniformOutput' to false. Error in Test6 (line 2) y=arrayfun(@(p) PSR(p),p);

7   Fail
x=1000000000000002; assert(isequal(PSR(PSR(x)),2))

Maximum variable size allowed by the program is exceeded. Error in PSR (line 2) x./(2:x); Error in Test7 (line 2) assert(isequal(PSR(PSR(x)),2))