fork download
  1. -module(prog).
  2. -export([tree/2,solve/2]).
  3.  
  4. tree(Data,_) when Data=<0->exit;
  5. tree(Data,Pid)->receive
  6. {data,C} -> C ,
  7. if Data==C -> Pid ! {yes,Data};
  8. true->Pid ! {no} end,
  9. DL=(Data div 2)-10, DR=Data*2 div 3,
  10. Pidl=erlang:spawn(fun()->tree(DL,Pid) end),
  11. Pidl ! {data,C},
  12. Pidr=erlang:spawn(fun()->tree(DR,Pid) end),
  13. Pidr ! {data,C},
  14. exit
  15. end.
  16. solve(D,C)-> %Pidc=erlang:spawn(fun -> count() end).
  17. Pid=erlang:spawn(fun()->tree(D,self()) end),
  18. Pid ! {data,C},loop(0).
  19.  
  20. loop(N)-> receive
  21. {yes,Data} ->io:write(Data),
  22. loop(N+1);
  23. {no} -> loop(N)
  24. end.
  25.  
Runtime error #stdin #stdout #stderr 0.06s 1749504KB
stdin
Standard input is empty
stdout
{"init terminating in do_boot",{undef,[{prog,main,[],[]},{init,start_em,1,[]},{init,do_boot,3,[]}]}}
stderr
init terminating in do_boot ()

Crash dump is being written to: erl_crash.dump...