Data and Math
vnumtheory
Primes, modular arithmetic and an RSA key pair generator meant only for teaching.
Released v1.0.0 · 2026-09-28use "stdlib/numtheory.ven"
print prime_factors(360)
Reference (10 functions)
API reference
euler_totient(n)
euler_totient(360)is_coprime(a, b)
is_coprime(17, 20)generate_small_prime(min_value, max_value)
Picks a random prime between min_value and max_value, inclusive.
generate_small_prime(10, 50)generate_rsa_keypair(bit_size_hint)
Generates a toy RSA keypair, (public_key, private_key), from a bit-size hint.
generate_rsa_keypair(16)rsa_encrypt(public_key, message_int)
Encrypts message_int under public_key with textbook RSA.
rsa_encrypt((20687, 7), 42)rsa_decrypt(private_key, ciphertext_int)
Decrypts ciphertext_int under private_key with textbook RSA.
rsa_decrypt((20687, 8743), 12580)diffie_hellman_public_key(private_key, prime, generator)
Computes one side's Diffie-Hellman public key.
diffie_hellman_public_key(6, 23, 5)chinese_remainder(remainders, moduli)
Solves a system of congruences with the Chinese Remainder Theorem.
chinese_remainder([2, 3, 2], [3, 5, 7])