Правильный вариант написания – «надо же». Слово «надо» является предикативом, а «же» – частицей. Согласно правилам русского языка, частицы со словами всегда пишутся раздельно. Синонимами будут словосочетания «вот как», «неужели», «вот ведь». Раздельное написание подтверждается тем, что между «надо» и «же» можно легко вставить слово без потери смысла – «надо было же». Например: Надо же, как трудно найти компетентного специалиста. Ну, надо же мне было влюбиться в дочь полковника!