-module(prog).
-export([tree/2,solve/2]).
tree(Data,_) when Data=<0->exit;
tree(Data,Pid)->receive
{data,C} -> C ,
if Data==C -> Pid ! {yes,Data};
true->Pid ! {no} end,
DL=(Data div 2)-10, DR=Data*2 div 3,
Pidl=erlang:
spawn(fun()->tree(DL,Pid) end), Pidl ! {data,C},
Pidr=erlang:
spawn(fun()->tree(DR,Pid) end), Pidr ! {data,C},
exit
end.
solve(D,C)-> %Pidc=erlang:spawn(fun -> count() end).
Pid=erlang:
spawn(fun()->tree(D,self()) end), Pid ! {data,C},loop(0).
loop(N)-> receive
{yes
,Data} ->io:
write(Data), loop(N+1);
{no} -> loop(N)
end.
LW1vZHVsZShwcm9nKS4KLWV4cG9ydChbdHJlZS8yLHNvbHZlLzJdKS4KCnRyZWUoRGF0YSxfKSB3aGVuIERhdGE9PDAtPmV4aXQ7CnRyZWUoRGF0YSxQaWQpLT5yZWNlaXZlCiAgICAgICAgICAgICAge2RhdGEsQ30gLT4gQyAsCiAgICAgICAgICAgICAgaWYgRGF0YT09QyAtPiBQaWQgISB7eWVzLERhdGF9OwogICAgICAgICAgICAgIHRydWUtPlBpZCAhIHtub30gZW5kLAogICAgICAgICAgICAgIERMPShEYXRhIGRpdiAyKS0xMCwgRFI9RGF0YSoyIGRpdiAzLAogICAgICAgICAgICAgIFBpZGw9ZXJsYW5nOnNwYXduKGZ1bigpLT50cmVlKERMLFBpZCkgZW5kKSwKICAgICAgICAgICAgICBQaWRsICEge2RhdGEsQ30sCiAgICAgICAgICAgICAgUGlkcj1lcmxhbmc6c3Bhd24oZnVuKCktPnRyZWUoRFIsUGlkKSBlbmQpLAogICAgICAgICAgICAgIFBpZHIgISB7ZGF0YSxDfSwKICAgICAgICAgICAgICBleGl0CiAgICAgICAgICAgIGVuZC4Kc29sdmUoRCxDKS0+ICVQaWRjPWVybGFuZzpzcGF3bihmdW4gLT4gY291bnQoKSBlbmQpLgogICAgICAgICAgICBQaWQ9ZXJsYW5nOnNwYXduKGZ1bigpLT50cmVlKEQsc2VsZigpKSBlbmQpLAogICAgICAgICAgICBQaWQgISB7ZGF0YSxDfSxsb29wKDApLgoKbG9vcChOKS0+ICByZWNlaXZlCiAgICAgICAgICAgIHt5ZXMsRGF0YX0gLT5pbzp3cml0ZShEYXRhKSwKICAgICAgICAgICAgbG9vcChOKzEpOwogICAgICAgICAgICB7bm99IC0+IGxvb3AoTikKICAgICAgICAgICAgZW5kLgo=
{"init terminating in do_boot",{undef,[{prog,main,[],[]},{init,start_em,1,[]},{init,do_boot,3,[]}]}}
init terminating in do_boot ()
Crash dump is being written to: erl_crash.dump...