Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

lychrel

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

lychrel

A collection of functions to play with Lychrel numbers and other funny mathematical problems

  • 0.7.2
  • Source
  • PyPI
  • Socket score

Maintainers
1

Lychrel

PyPI version Documentation Status

This is a collection of python functions which implements famous mathematical problems, and it is named after the lychrel numbers.

Under the hood lychrel is implemented in rust thanks to PyO3.

User guide and documentation: lychrel.readthedocs.io

Any contribution is welcome!

Implemented algorithms

  • Lychrel numbers: find first palindrome of the reverse-and-add procedure and determine if a number is a lychrel candidate.
  • Generalized fibonacci sequences: also known as Lucas Sequence.
  • Read out and loud: Given a number, this function compute the sequence of digits resulting from reading out loud the number, grouping together multiples of the same digit if any. E.g. read_out_loud(3211) == 131221 because the number 3211 is read as "one 3, one 2 and two 1s".
  • Kaprekar's routine: an iterative algorithm that, with each iteration, takes a natural number in a given number base, creates two new numbers by sorting the digits of its number by descending and ascending order, and subtracts the second from the first to yield the natural number for the next iteration.
  • Collatz conjecture: also known as 3n+1 problem, implements an iterator given a starting number. E.g. list(collatz(5)) == [5, 16, 8, 4, 2, 1].

Getting started

Lychrel is available on PyPi, to install it just type on your favourite shell:

pip install lychrel

Install from source

If you want to install lychrel from source code, clone this repo and create a virtual environment with python 3.7+ using your favourite tool (conda, virtualenv, etc.), then follow these steps:

1. Install dev requirements
pip install -r requirements-dev.txt
2. Build the package
maturin develop

For optimal performances add the --release option:

maturin develop --release

Examples

Check whether a number is a lychrel candidate:

from lychrel import is_lychrel_candidate

assert is_lychrel_candidate(196)
assert not is_lychrel_candidate(197)

Check out the tests for more examples.

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc