Cody

# Problem 1891. High Precision Square Root (Inspired by Project Euler 80)

Solution 329855

Submitted on 7 Oct 2013 by Richard Zapor
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
% Clean workspace !/bin/cp string_sqrt.m safe !/bin/rm *.* !/bin/mv safe string_sqrt.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('string_sqrt.m'); st = char(fread(fid)'); for n = 1:numel(functions) st = regexprep(st, functions{n}, 'error(''No fancy functions!''); %','ignorecase'); end fclose(fid)

ans = 0

2   Pass
%% assert(strcmp(string_sqrt(1000,10),'31.6227766016'))

3   Pass
%% assert(strcmp(string_sqrt(10,11),'3.16227766016'))

4   Pass
%% assert(strcmp(string_sqrt(3,100),'1.7320508075688772935274463415058723669428052538103806280558069794519330169088000370811461867572485756'))

5   Pass
%% assert(strcmp(string_sqrt(314159,314),'560.49888492306565872479934293941633491101288779142813321911971670725840486880541273457870660258696202335374555140881778649205224589390756076993240996126057385009263605818384161945745399159720436585888004381611637660905033452884843995010613320008027334007622507916692664539613518278405454926834945753785814159773889523'))

6   Pass
%% a=2:50; a(sqrt(a)==floor(sqrt(a)))=[]; na=numel(a); b=zeros(na,100); for flag=1:na temp=string_sqrt(a(flag),101); t2=regexprep(temp,'\.','')-'0'; b(flag,:)=t2(1:100); end y_correct=sum(sum(b)) assert(isequal(19543,y_correct))

y_correct = 19543

7   Pass
%% assert(strcmp(string_sqrt(12345,1),'111.1'))

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!