Codegolf - Палиндромы Squarefree

  • Автор темы Buck
  • Обновлено
  • 26, Oct 2024
  • #2

Питон 2, 82 75 байт

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 $_-$r||(all{$r%$_**2}2..$_)&&say while$r=reverse++$_
 

Попробуйте онлайн!

Если это была проблема с решением (54 байта):

-MList::Util=all

Объяснение:

f = (n, i) => // f is a recursive function taking an index n g(i += k = '') || // set k to a zero'ish empty string, // coerce i to a string // and invoke g with d = i n-- ? // if the above call was truthy or n is not equal to 0: f(n, -~i) // do a recursive call with i + 1 : // else: i // success: return i ||answer||

Шелуха, 8 байт

g = d => // g is a recursive function taking a counter d i[d] && // if i[d] is defined i[d] - i[k++] ? // and it's not equal to i[k] (increment k afterwards): 1 // i is not palindromic: force a truthy result : // else: i % d-- ** 2 ? // if d² is not a divisor of i (decrement d afterwards): g(d) // do a recursive call : // else: d // return d (0 if i is squarefree)

Попробуйте онлайн!

 

Zheka81


Рег
30 Mar, 2020

Тем
80

Постов
196

Баллов
626
  • 26, Oct 2024
  • #3

Брахилог, 5 байт

Генерирует последовательность

f=(n,i)=>(g=d=>i[d]&&i[d]-i[k++]?1:i%d--**2?g(d):d)(i+=k='')||n--?f(n,-~i):i

Попробуйте онлайн!

∞ # push the list of natural numbers [1, 2, ...] ʒ # keep the values for which the following is 1: Â # push the number and its reverse Q # are both equal? y # push the number again Ó # push the exponents of the prime factorisation à # take the maximum * # multiply both numbers ||answer||

Язык Wolfram (Математика), 52 байта

∞ʒÂQyÓà*

Попробуйте онлайн!

 

Hsw


Рег
13 Mar, 2007

Тем
66

Постов
231

Баллов
581
  • 26, Oct 2024
  • #4

Желе, 10 байт

1ÆfQƑ׌ḂƲ# - Main link. Takes no arguments Ʋ - Group the previous 4 links into a monad f(k): Æf - Prime factorisation of k (with repeats) Ƒ - Is this invariant under: Q - Deduplication ŒḂ - Is k a palindrome? × - Both conditions are true? 1 # - Read an integer n from STDIN. Count up k = 1, 2, 3, ... until n such k return true under f(k). Return those k

Попробуйте онлайн!

Возвращает первый n squarefree palindromes

Как это работает

1ÆfQƑ׌ḂƲ# ||answer||

05AB1E, 8 байт

Печатает бесконечную последовательность.

Do[If[SquareFreeQ@n&&PalindromeQ@n,Print@n],{n,∞}]

Попробуйте онлайн!

Прокомментировал:

ḋ≠&↔? (the input's) ḋ prime decomposition ≠ has only unique elements & and the input ↔ reversed ? is the input (and also the output) ||answer||

JavaScript (ES7), 81 76 байт

Возвращает n-й термин с индексом 1.

ḋ≠&↔?

Попробуйте онлайн!

Прокомментировал

Вспомогательная функция

Вспомогательная функция г одновременно проверяет, я является палиндромным и бесквадратным. Переменная д используется как счетчик для проверки делителей и как индекс убывающей цифры. Переменная к используется как возрастающий цифровой индекс. Оба я и к определены в обертке.

foS=upİ↔

обертка

Основная функция декрементирует н в любое время г возвращает 0 и останавливается, когда п = 0.

`n`[::-1]==`n` # If n is a palindrome. `n` is repr(n). # We check that it's the same # backwards and forwards. * # Multiplplying 2 booleans is AND all(n%i**2for i in range(2,n)) # Check that squares of all #'s < n do not divide n ||answer||

Перл 5 lambda n:`n`[::-1]==`n`*all(n%i**2for i in range(2,n)) , 52 bytes

n=0 while 1: n+=1 if`n`[::-1]==`n`*all(n%i**2for i in range(2,n)):print n

Попробуйте онлайн!

 

Ljlj


Рег
23 Mar, 2021

Тем
67

Постов
198

Баллов
563
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно