#prime #numbers #theory #module #import #germain #isgermainprime

ImtiazGermain

一个Rust库,用于检查一个数是否是Germain和Imtiaz-Germain素数

1个不稳定版本

0.1.2 2023年4月11日
0.1.1 2023年4月11日

#1110 in 数学

MIT许可

3MB
9K SLoC

JavaScript 9K SLoC // 0.2% comments Rust 56 SLoC // 0.2% comments Python 42 SLoC // 0.1% comments

包含 (WOFF字体, 330KB) lato-normal-italic.woff, (WOFF字体, 325KB) _static/css/fonts/lato-bold-italic.woff, (WOFF字体, 310KB) _static/css/fonts/lato-bold.woff, (WOFF字体, 310KB) _static/css/fonts/lato-normal.woff, (WOFF字体, 195KB) _static/css/fonts/lato-bold-italic.woff2, (WOFF字体, 185KB) _static/css/fonts/lato-bold.woff2 等8个更多文件.

ImtiazGermain

ImtiazGermain是一个面向数论库,实现了Germain素数的编辑版本,该版本发表在《一位年轻数学家》一书中。以下是ImtiazGermain素数的算法

Input number n --> Calculate p = (n - 1) / 2 --> Check if n, p, and 2p + 1 are prime ------------------> 
|                                                  |                                                    |
|                                                  No                                                   |
|                                                  |                                                    |
|                                                  V                                                    |
Output "n is not an Imtiaz Germain prime"     <----- Stop                                               |
|                                                                                                       |
Yes                                                                                                     |
|                                                                                                       |
V                                                                                                       |
Calculate m = 2p + 1 --> Check if m is composite --> Calculate q = 2m + 1 --> Check if q is prime -No-->|
|                                                  |                              |                     
|                                                  No                             Yes                   
|                                                  |                              |                     
|                                                  V                              V                     
Output "n is not an Imtiaz Germain prime"     <----- Stop        Output "n is an Imtiaz Germain prime"  

功能

  • Germain素数检测
  • Imtiaz-Germain素数检测

安装

要在Rust项目中使用ImtiazGermain,请将以下内容添加到您的Cargo.toml文件中

[dependencies]
ImtiazGermain = "0.1.1"

或者,您也可以使用Python

pip install imtiazgermain

用法

要在Rust代码中使用ImtiazGermain,导入必要的模块

use ImtiazGermain::primecheck::{isgermainprime, isimtiazgermainprime};

然后,调用所需的加密或实用函数。例如,使用凯撒密码加密消息

use std::io;
use ImtiazGermain::primecheck::{isgermainprime, isimtiazgermainprime};

fn main() {
    println!("Enter a number:");
    let mut input = String::new();
    io::stdin().read_line(&mut input).unwrap();
    let n = input.trim().parse::<u64>().unwrap();

    if primecheck::isimtiazgermainprime(n) {
        println!("{} is an Imtiaz Germain prime", n);
    } else {
        println!("{} is not an Imtiaz Germain prime", n);
    }
}

您可以使用Python如下

import ImtiazGermain.primecheck as pm

pc = pm.primecheck()
print(pc.isgermainprime(2))    # True
print(pc.isimtiazgermainprime(3))    # True
print(pc.isgermainprime(5)) #True
print(pc.isgermainprime(7))    # True

无运行时依赖