English versionКлассический вариант проверял делением, а я решил ради интереса создать все варианты произведений, а затем перебрать числа, для которых отсутствуют эти варианты.
Как всегда, по дороге узнал много интересного...
template
struct K;
template struct K
{
void not_prim();
};
template struct K : public K
{
using K::not_prim;
K() { char a[J] = {0}; not_prim(a); }
};
template struct K : public K
{
using K::not_prim;
typedef const char A[J*I];
virtual void not_prim(const A &) const;
};
int main()
{
K<55> k;
}
Оформлено с помощью GNU Source-highlight 2.9
Собственно, это реализация Решета Эратосфена.
Upd: А теперь классический вариант - http://mpd.livejournal.com/54014.html - с примерами вывода различных компиляторов.