Skip to main content

Structural analysis for integers — classify, scan, compare, and track number structure using a shared label language

Project description

On the Distribution of Smaller Factors in Semiprimes

Jonathan Kendall, 2026

An empirical study of the coordinate θ = log p / log n for semiprimes n = pq (p ≤ q). Exact enumeration up to N ≤ 10⁸ shows that the proportion P(N, θ₀) of semiprimes with θ ≤ θ₀ increases monotonically with N, consistent with O(1/log log N) decay toward a limiting value — the classical rate for related semiprime counts (Montgomery–Vaughan §7.4). A novel discrete activation phenomenon is documented: each prime p contributes a visible step in P(N, θ₀) when N crosses p^(1/θ₀). A refined heuristic prefactor f(θ₀) = log(1/θ₀) − θ₀ − log 2 + ½ reduces the maximum relative prediction error for δ · log log N from 4.3× (naive Mertens) to under 1.21× across θ₀ ∈ [0.10, 0.45]. Several geometric and spectral embeddings (additive phase wrapping, multiplicative phase maps, spectral fingerprint, factor-ratio spectrum) all fail to recover the structure carried by θ, consistent with a separation principle: factor asymmetry is not recoverable from any function of n alone that is multiplicative or additive in log-space.

Paper

"On the Distribution of Smaller Factors in Semiprimes: Discrete Activation Thresholds, Slow Convergence, and a Refined Heuristic" — Jonathan Kendall, 2026

📄 Read the paper (PDF) | [Submitted to Integers: Electronic Journal of Combinatorial Number Theory]

To reproduce all paper results exactly:

python3 scripts/verify_semiprime_tables.py

The PrimeHelix toolkit (CLI, visualizations, structure-scan) is a separate research tool built alongside the paper.

Requirements

  • Python 3.8+, numpy, scipy, matplotlib
  • ~400 MB RAM for SPF sieve to N = 1e8
  • Runtime: ~8 minutes

Reproduce all results

python3 scripts/verify_semiprime_tables.py

scripts/verify_semiprime_tables.py is the canonical script (commit fc43ef0). scripts/verify_paper_tables.py is an earlier version kept for reference only.

Outputs

  • results/table1.csv, table2.csv, table3.csv
  • activation_theta_0_10.png
  • stabilisation.png

Verified checksums (exact, no sampling)

  • 210,035 semiprimes ≤ 1e6
  • 1,904,324 semiprimes ≤ 1e7
  • 17,427,258 semiprimes ≤ 1e8

Repository structure

paper/          — paper.tex, cover_letter.tex, paper.pdf (canonical)
paper/drafts/   — earlier draft versions
scripts/        — all Python and shell scripts
figures/        — all generated plots
datasets/       — raw data CSVs and JSON
results/        — CSV outputs from verification script

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

primehelix-1.0.0.tar.gz (40.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

primehelix-1.0.0-py3-none-any.whl (38.8 kB view details)

Uploaded Python 3

File details

Details for the file primehelix-1.0.0.tar.gz.

File metadata

  • Download URL: primehelix-1.0.0.tar.gz
  • Upload date:
  • Size: 40.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for primehelix-1.0.0.tar.gz
Algorithm Hash digest
SHA256 bc79d19b3d9080b5a690c46a3de5d0bb41e2391366165359fa84f89a92036f34
MD5 6e32f0363027526b36b501022c108dbd
BLAKE2b-256 f79db98b49463253b41d659b9c62ad1d8164ca17a43128bbbf3584fcded2097c

See more details on using hashes here.

Provenance

The following attestation bundles were made for primehelix-1.0.0.tar.gz:

Publisher: publish.yml on onojk/primehelix

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file primehelix-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: primehelix-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 38.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for primehelix-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 35f50dd912b2e2b2b4e88a07a79c9facd1a536f9a2497ee97dab4449a3c915dc
MD5 e755fb1584a6d131938ce8a75b90968f
BLAKE2b-256 62ae4fec0b2de843b3196158a87b9c49fb30bc172d45703c287654d91793c49b

See more details on using hashes here.

Provenance

The following attestation bundles were made for primehelix-1.0.0-py3-none-any.whl:

Publisher: publish.yml on onojk/primehelix

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page