永发信息网

C语言 设计并实现一种大素数随机生成方法; 实现一种快速判定任意一个大数是否是素数方法 跪求啊

答案:3  悬赏:0  手机版
解决时间 2021-11-16 11:01
C语言 设计并实现一种大素数随机生成方法; 实现一种快速判定任意一个大数是否是素数方法 跪求啊
最佳答案
    目前来说大素数随机生成方法是不存在的,这是一个NPC问题,NPC问题世界的七大难题之一,如果你能够解决,就能够拿到100万美金的奖励。但是现在有快速判定任意一个大数是否是素数方法:Miller Rabin算法。
    Miller-Rabin算法是目前主流的基于概率的素数测试算法,在构建密码安全体系中占有重要的地位。通过比较各种素数测试算法和对Miller-Rabin算法进行的仔细研究,证明在计算机中构建密码安全体系时, Miller-Rain算法是完成素数测试的最佳选择。通过对Miller-Rabin 算 法底层运算的优化,可以取得较以往实现更好的性能。Miller-Rabin算法是Fermat算法的一个变形改进,它的理论基础是由Fermat定理引申而来。
    Fermat 定理: n是一个奇素数,a是任何整数(1≤ a≤n-1) ,则 a^(n-1)≡1(mod n)。
    Miller-Rabin 算法的理论基础:如果n是一个奇素数, 将n-1表示成2^s*r的形式(r是奇 数),a 是和n互素的任何整数, 那么ar≡1(mod n) 或者对某个j(0≤j ≤s -1, j∈Z) 等式 a2jr ≡-1(mod n)成立。 这个理论是通过一个事实经由Fermat定理推导而来: n是一个奇素数,则方程x2 ≡ 1 mod n只有±1两个解。


全部回答
int main(void)
{
    int a, i;        
    
    srand(time(NULL));  
    a = rand();
    if (a > 5)
    if (a%2==0 || a%3==0 || a%5==0)
    {
         printf("%d是个合数 ", a);
         return 0;
    }
    else
    {
        printf("%d是个素数 ", a);
        return 0;
    }
    if (a == 1)
    {
        printf("1既不是合数,也不是素数 ");
    }
    for (i=2; i<=a; i++)
        if (0 == a%i)
            break;
    if (a == i)
        printf("%d是个素数 ", a);
    else
        printf("%d是个合数 ", a);

    return 0;
}

程序主要思路:

随机出数字, 然后再定义一个变量. 先判断这个随机出的数字能不能被2,3,5整除, 如果可以, 直接输出, 然后退出程序. 如果不能, 让它为2(因为0不能作除数, 任何整数都能整除1), 然后让它一直自加, 直到和输入的数字一样.

如果自加过程中用户输入的数字能够把这个数字整除, 就结束自加(退出循环), 然后再判断自加的这个数和输入的数是否相等, 如果相等, 说明这个数之前的所有数都不能被整除, 那就是质数. 如果不相等, 说明这个数有2个以上的因数, 则是合数.

另:素数和质数是一个意思.

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
眉山到泸州的大巴要多久才能到?
怎样栽种月季花营养钵苗
在公司没有事情做怎么办? 入职6天的时候,老
这样的碧玺成色算好吗?
从大连到烟台往返的客轮体验如何?
2016年章丘个所高中自主招生分数线
卧鸡蛋放红糖好吗
上海绿晶绿色干洗店地址有知道的么?有点事想
数字货币期货合约不得不了解的几个概念
上海柯瑞达家具有限公司怎么样?
新蒙的前保险杠有两层车漆这正常吗
lim lnsin5/lnsin2x x趋近于0
践履的词语释义
十等于谁加谁等于谁乘谁等于谁减谁
Dior 正品在哪可以买到?
推荐资讯
固体传声和气体传声有什么区别
钥匙方块36除以42的商是一位数方块里最大应填
失恋很长时间后为什么对任何人都没感觉了
拍电视剧以80,90年代为背景有那些
消防器材中的的M.S是什么意思呢?
稳压二极管与肖特基二极管有什么区别?
女孩说哟哟哟是什么意思
今天皮皮播放器怎么了
SQL能把2个字段的内容合并在一起么?
宦妃天下正规画册里百里青coser是谁
忽睹天际彩云,常疑好事皆虚事;再观山中闲木,
你充耳不闻什么意思
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?