Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Solution 319441

Submitted on 15 Sep 2013 by Alfonso Nieto-Castanon

Correct

44Size
This is the leading solution.
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

Test Suite

Test
Code Input and Output
1
Pass
 
% Clean workspace
!/bin/cp partitions.m safe
!/bin/rm *.*
!/bin/mv safe partitions.m
% Clean user's function from some known jailbreaking mechanisms
functions={'!','feval','eval','str2func','str2num','regex','system','dos','unix','perl','assert','fopen','write','save','setenv','path','please'};
fid = fopen('partitions.m');
  st = char(fread(fid)');
  for n = 1:numel(functions)
    st = regexprep(st, functions{n}, 'error(''No fancy functions!''); %','ignorecase');
  end
fclose(fid)
% Force a function header, and comment first code's line (the supposedly users' function header)
st = sprintf('function y = partitions(x)\n%%%s', st);
fid = fopen('partitions.m' , 'w');
  fwrite(fid,st);
fclose(fid)
ans =
     0
ans =
     0
2
Pass
 
%%
x = 1;y_correct = 1;assert(isequal(partitions(x),y_correct))

                    
3
Pass
 
%%
x = 5;y_correct = 7;assert(isequal(partitions(x),y_correct))

                    
4
Pass
 
%%
x = 50;y_correct = 204226;assert(isequal(partitions(x),y_correct))

                    
5
Pass
 
%%
assert(isequal(partitions(partitions(partitions(partitions(5)))),476715857290));

                    
6
Pass
 
%%
assert(isequal(partitions(partitions(partitions(6))),526823));

                    
7
Pass
 
%%
assert(isequal(partitions(partitions(12)),10619863));

                    
8
Pass
 
%%
assert(isequal(partitions(199),3646072432125))

                    
9
Pass
 
%%
P=arrayfun(@(x) partitions(x),10:10:100);
y_correct=[42 627 5604 37338 204226 966467 4087968 15796476 56634173 190569292];
assert(all(isequal(P,y_correct)))