Олимпиадный тренинг

Задача . C. Jzzhu и яблоки


Jzzhu собрал n яблок с большого яблочного дерева. Он пронумеровал яблоки от 1 до n и теперь хочет продать их яблочному магазину.

Jzzhu собирается продавать уже упакованные яблоки. В каждой пачке должно быть по два яблока, а наибольший общий делитель номеров яблок в пачке должен быть больше 1. Какое максимальное количество пачек сможет получить Jzzhu, если будет следовать описанным условиям? Также он должен знать, как именно упаковать яблоки оптимальным способом. Помогите ему найти оптимальное распределение яблок по упаковкам.

Входные данные

В первой строке записано единственное целое число n (1 ≤ n ≤ 105) — количество яблок.

Выходные данные

В первой строке выведите целое число m, обозначающее максимальное количество пачек, которые юноша сможет получить. В каждой из следующих m строк должно быть записано два целых числа — номера яблок в текущей пачке.

Естественно, что одно яблоко может находиться не более чем в одной пачке. Если существует несколько оптимальных ответов, разрешается вывести любой из них.


Примеры
Входные данныеВыходные данные
1 6
2
6 3
2 4
2 9
3
9 3
2 4
6 8
3 2
0

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя