From an interviewing perspective, asking someone to "solve" this kind of problem on a whiteboard would be interesting to see.
One thing I'd tell them is to not worry about the code; that is, if they just want to write the process in pseudocode or something like that - as long as the logic can be followed, that would be ok. In other words, give them the leeway to not worry about proper coding, knowledge of functions, etc - but instead let them concentrate on the problem.
I wouldn't expect anyone to solve such a question - but it would give a good insight into how they go about solving a problem. Do they ask questions? What happens when they get stuck? Can they explain their reasoning? And so forth.
Let them do what they can, give them 30 minutes or so; if they look lost, ask them some questions, see how they respond, etc.
I think such a question could be very valuable - if presented in the right way.