>>40 乙乙
Node.js の勉強ついでに解いてみた。
var puts = console.log.bind(console);
var so = process.stdout, si = process.stdin;
so.setEncoding('utf8');
si.setEncoding('utf8');
si.pause();
so.write('number ? ');
so.on('drain', function(){ si.resume(); });
si.on('data', function(chunk){
  chunk.trim().split('\n').forEach(function(line){
    var n = parseInt(line);
    if(isNaN(n)){ puts('[' + line + '] is not a number'); return; }
    // puts('number = ' + n);
    var p = Math.floor(Math.log(n) / Math.log(3)) + 1;
    var x = Math.pow(3, p - 1);
    var m = n, sa = '', sb = '';
    for(var i = 1; i <= p; i++){
      // puts('p = ' + p + ', x = ' + x + ', n = ' + n + ', m = ' + m);
      sa += Math.floor(n / x);
      n -= Math.floor(n / x) * x;
      x /= 3;
      sb += m - Math.floor(m / 3) * 3;
      m = Math.floor(m / 3);
    }
    puts((sa == '' ? '0' : sa) + ' ' + (sb == '' ? '0' : sb) + ' 一致' + (sa == sb ? 'する' : 'しない'));
  });
  if(so.write('number ? ') == false) si.pause();
});
si.on('end', function(){ puts('bye.'); });