PRIMECOUNT(1)   PRIMECOUNT(1)

primecount - شمارش اعداد اول

primecount x [گزینه‌ها]

شمارش تعداد اعداد اول کوچک‌تر یا مساوی با x (کوچک‌تر مساوی 10^31) با استفاده از پیاده‌سازی‌های سریع الگوریتم‌های تابع شمارش ترکیبیاتی اعداد اول. به‌طور پیش‌فرض، primecount اعداد اول را با استفاده از الگوریتم خاویر گوردون (Xavier Gourdon) شمارش می‌کند که دارای پیچیدگی زمانی اجرای O(x^(2/3) / log^2 x) عملیات بوده و از O(x^(2/3) * log^3 x) حافظه استفاده می‌کند. برنامه primecount چندریسه‌ای است و به‌طور پیش‌فرض از تمام هسته‌های پردازنده (CPU) در دسترس استفاده می‌کند.

-d, --deleglise-rivat

شمارش اعداد اول با استفاده از الگوریتم دلیز-ریوات (Deleglise-Rivat).

--double-check

محاسبه مجدد pi(x) با فاکتور(های) تنظیم آلفای جایگزین جهت اعتبارسنجی نتیجه اول. این افزونگی به محافظت در برابر اشکالات احتمالی در primecount کمک می‌کند: اگر خطایی وجود داشته باشد، بسیار بعید است که هر دو محاسبه pi(x) نتیجه یکسان (و نادرست) تولید کنند.

-g, --gourdon

شمارش اعداد اول با استفاده از الگوریتم خاویر گوردون (الگوریتم پیش‌فرض).

-l, --legendre

شمارش اعداد اول با استفاده از فرمول لژاندر (Legendre).

--lehmer

شمارش اعداد اول با استفاده از فرمول لمر (Lehmer).

--lmo

شمارش اعداد اول با استفاده از الگوریتم لاگاریاس-میلر-اودلیزکو (Lagarias-Miller-Odlyzko).

-m, --meissel

شمارش اعداد اول با استفاده از فرمول مایسل (Meissel).

--Li

تقریب pi(x) با استفاده از انتگرال لگاریتمی اویلری: Li(x)، همراه با Li(x) = li(x) - li(2).

--Li-inverse

تقریب n-امین عدد اول با استفاده از معکوس انتگرال لگاریتمی اویلری: Li^-1(x).

-n, --nth-prime

محاسبه n-امین عدد اول.

-p, --primesieve

شمارش اعداد اول با استفاده از غربال اراتستن (sieve of Eratosthenes).

--phi X A

تابع phi(x, a) اعدادی را می‌شمارد که <= x هستند و بر هیچ‌یک از a عدد اول نخست بخش‌پذیر نیستند.

-R, --RiemannR

تقریب pi(x) با استفاده از تابع R ریمان: R(x).

--RiemannR-inverse

تقریب n-امین عدد اول با استفاده از معکوس تابع R ریمان: R^-1(x).

--RiemannR-psi

تقریب pi(x) با استفاده از یک تقریب پالایش‌شده تابع R ریمان مبتنی بر R(psi(x)). در مقایسه با --RiemannR، این گزینه ابتدا psi(x) چبیشف را با استفاده از فرمول صریح ریمان و با ۵۱۲ گامای صفر زتای اول تقریب می‌زند و سپس R(psi(x)) را ارزیابی می‌کند. در عمل، این گزینه معمولاً pi(x) را با دقت بیشتری نسبت به R(x) معمولی تخمین می‌زند.

--RiemannR-psi-inverse

تقریب n-امین عدد اول با استفاده از معکوس تقریب پالایش‌شده R(psi(x)). در مقایسه با --RiemannR-inverse، این گزینه به‌جای R(x) معمولی، تقریب تصحیح‌شده با psi را معکوس می‌کند. در عمل، این گزینه معمولاً n-امین عدد اول را با دقت بیشتری نسبت به R^-1(x) تخمین می‌زند.

-s, --status[=NUM]

نمایش پیشرفت محاسبه، مانند 1%, 2%, 3%, ... نمایش NUM رقم بعد از ممیز اعشار: --status=1 مقدار 99.9% را چاپ می‌کند.

--test

اجرای آزمون‌های مختلف صحت‌سنجی و خروج.

--time

چاپ زمان سپری‌شده بر حسب ثانیه.

-t, --threads=NUM

تنظیم تعداد ریسه‌ها، 1 <= NUM <= هسته‌های پردازنده (CPU). به‌طور پیش‌فرض، primecount از تمامی هسته‌های پردازنده در دسترس استفاده می‌کند.

-v, --version

چاپ اطلاعات نسخه و پروانه انتشار (مجوز).

-h, --help

چاپ این منوی راهنما.

--P2

محاسبه دومین تابع غربال جزئی.

--S1

محاسبه برگ‌های معمولی (ordinary leaves).

--S2-trivial

محاسبه برگ‌های ویژه بدیهی (trivial special leaves).

--S2-easy

محاسبه برگ‌های ویژه آسان (easy special leaves).

--S2-hard

محاسبه برگ‌های ویژه سخت (hard special leaves).

ضریب تنظیم آلفا (alpha) عمدتاً محاسبات فرمول‌های S2_easy و S2_hard را متعادل می‌سازد. با افزایش آلفا، زمان اجرای فرمول S2_hard معمولاً کاهش می‌یابد، در حالی که زمان اجرای فرمول S2_easy افزایش پیدا می‌کند. به‌طور پیش‌فرض، primecount به‌طور خودکار ضریب تنظیم آلفایی را انتخاب می‌کند که به احتمال زیاد بهترین عملکرد را برای ورودی کاربر ارائه دهد.

ضریب تنظیم آلفا همچنین برای بررسی دوباره محاسبات pi(x) بسیار مفید است. شما pi(x) را دو بار محاسبه می‌کنید، اما برای محاسبه دوم از یک ضریب آلفای کمی متفاوت استفاده می‌نمایید. اگر نتایج هر دو محاسبه pi(x) یکسان باشند، صحت pi(x) با موفقیت تأیید شده است.

-a, --alpha=NUM

تنظیم ضریب تنظیم آلفا: y = x^(1/3) * alpha، به طوری که 1 <= alpha <= x^(1/6).

--AC

محاسبه فرمول‌های A + C.

--B

محاسبه فرمول B.

--D

محاسبه فرمول D.

--Phi0

محاسبه فرمول Phi0.

--Sigma

محاسبه ۷ فرمول Sigma.

ضرایب تنظیم alpha_y و alpha_z عمدتاً محاسبات فرمول‌های A، B، C و D را متعادل می‌سازند. هنگامی که alpha_y کاهش و alpha_z افزایش می‌یابد، زمان اجرای فرمول B افزایش یافته در حالی که زمان اجرای فرمول‌های A، C و D کاهش می‌یابد. به‌طور پیش‌فرض، primecount به‌طور خودکار ضرایب تنظیم alpha_y و alpha_z را انتخاب می‌کند که به احتمال زیاد بهترین عملکرد را برای ورودی کاربر به همراه دارند.

هر دو ضریب تنظیم alpha_y و alpha_z نیز برای بررسی دوباره محاسبات pi(x) بسیار مفید هستند. شما pi(x) را دو بار محاسبه می‌کنید اما برای محاسبه دوم از ضرایب کمی متفاوت alpha_y و/یا alpha_z استفاده می‌کنید. اگر نتایج هر دو محاسبه pi(x) یکسان باشند، صحت pi(x) با موفقیت تأیید شده است.

--alpha-y=NUM

تنظیم ضریب تنظیم alpha_y: رابطه y = x^(1/3) * alpha_y، به طوری که 1 <= alpha_y <= x^(1/6).

--alpha-z=NUM

تنظیم ضریب تنظیم alpha_z: رابطه z = y * alpha_z، به طوری که 1 <= alpha_z <= x^(1/6).

برای محاسبات بزرگ pi(x) که چندین هفته یا ماه به طول می‌انجامند، اعتبارسنجی این محاسبات جهت محافظت در برابر خطاهای محاسباتی ناشی از نقص‌های سخت‌افزاری و/یا اشکالات نرم‌افزاری در primecount بسیار مهم است.

برای اعتبارسنجی یک محاسبه pi(x)، آن را دو بار محاسبه می‌کنید؛ اما برای اجرای دوم از گزینه --double-check استفاده می‌نمایید. گزینه --double-check استفاده از فاکتور(های) تنظیم آلفای جایگزین را فعال می‌کند و تضمین می‌نماید که تمامی کران‌های داخلی در محاسبه دوم کمی با اجرای اول متفاوت باشند. این افزونگی به محافظت در برابر باگ‌های احتمالی در primecount کمک می‌کند: اگر خطایی رخ دهد، بسیار بعید است که هر دو محاسبه pi(x) نتیجه یکسان (و نادرستی) به بار آورند.

primecount 1e20 --status

اولین محاسبه pi(x) با استفاده از ضریب(های) تنظیم پیش‌فرض آلفا.

primecount 1e20 --status --double-check

دومین محاسبه pi(x) با استفاده از ضریب(های) تنظیم جایگزین آلفا.

primecount 1000

شمارش اعداد اول کوچک‌تر یا مساوی با 1000.

primecount 1e17 --status

شمارش اعداد اول کوچک‌تر یا مساوی با 10^17 و چاپ اطلاعات وضعیت پیشرفت.

primecount 1e15 --threads 1 --time

شمارش اعداد اول کوچک‌تر یا مساوی با 10^15 با استفاده از یک تک‌ریسه و چاپ زمان سپری‌شده.

https://github.com/kimwalisch/primecount

Kim Walisch <kim.walisch@gmail.com>

04/16/2026