Cody

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

Solution 2148426

Submitted on 2 Mar 2020
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))

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

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

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>pfactors (line 13) a=2:x-1; Error in PSR (line 3) b=pfactors(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 6469693228x1 (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>pfactors (line 13) a=2:x-1; Error in PSR (line 3) b=pfactors(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))

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>pfactors (line 13) a=2:x-1; Error in PSR (line 3) b=pfactors(x); Error in Test7 (line 2) assert(isequal(PSR(PSR(x)),2))