Я решил добавить в блог новую рубрику под названием Euler Project. Время от времени встречаются интересные задачки для программистов и не только, решить которые очень интересно и полезно. Поэтому сюда я буду выкладывать все, кто касается данной тематики — от обычных методов сортировки до задач на собеседованиях во всем известные компании а ля «если бы вы были карандашом и попали в блендер, как бы вы выбирались». Также сюда относятся задачи проекта Эйлер такие как, например, Circular Primes.
Открывает рубрику задача из проекта Эйлер — Circular Primes.
Условие задания взято с сайта beatmycode.com, там же проводилось тестирование.
A number is called a circular prime if all of its rotations (rotations of their digits) are primes themselves. For example the prime number 197 has two rotations: 971, and 719. Both of them are prime, so all of them are circular primes. There are thirteen such primes below 100: 2, 3, 5, 7, 11, 13, 17, 31, 37, 71, 73, 79, and 97.
How many circular primes are there below N if 1 <= N <= 1000000?
В переводе на русский речь идет о круговых простых числах. Число считается простым, если оно делится без остатка на 1 и самого себя. Простое круговое число например 197, потому что как его не крути — 971 и 719 тоже являются простыми числами.
Задача состоит в том, чтобы посчитать сколько круговых простых чисел находится в диапазоне от 1 до 1000000?
Ничто не сравнится с удовлетворением от решения задачи, над которой вы ломали голову не один час. Конечно, желая поделиться своим озарением с другими, я действую из лучших побуждений, но увы, скорее всего я окажу вам медвежью услугу. Настоящее обучение — это активный процесс, одно дело наблюдать за процессом, и совсем другое — переживать этот опыт самому.
Реализация на Objective-C. Убедитесь, что вы сделали все возможное и невозможное, прежде чем заглянуть в решение.
Unit test beatmycobe.com — 100/100