Я пытаюсь сгенерировать круговые простые числа в Mathematica 8.
Круговое простое число — это такое число, что все повороты его цифр являются простыми.
Например. 197 круговой, потому что 971 и 719 тоже являются первичными.
Теперь, чтобы проверить, является ли простое число круговым, я генерирую все вращения. Я делаю это следующим образом:
p = IntegerDigits[197];
Table[RotateLeft[p, n], {n, Length[p]}]
Что, следовательно, возвращает
{{9, 7, 1}, {7, 1, 9}, {1, 9, 7}}
Однако здесь я застреваю. Что я хотел бы сделать сейчас, так это захватить элементы каждого внутреннего списка и объединить их вместе в последовательном порядке, чтобы вывод стал таким
{971, 719, 197}
Так что я могу проверить, удовлетворяют ли все вращения PrimeQ[].
Хотя я, с одной стороны, мог бы сделать это, перебирая список, мне кажется, что есть лучший способ, которого я просто не понимаю.
NestList
можно было использовать как альтернативуTable
в первой части. Вам, наверное, хорошо известно об этом.NestList[RotateLeft,p,(Length@p)-1]
- person tomd   schedule 04.07.2011NestList
пригодится. - person tesc   schedule 04.07.2011