网站首页 游戏装备 最新资讯 发布游戏 游戏技术
完美世界前传官方网站最优秀的合作专区,提供丰富的完美前传资料,完美前传公测时间,最新的完美前传激活码,消息,经验心得。www.175zz.com
关于大数的质因数分解
文章作者: 文章来源:

对于一个大数,首先斟酌它是否是一个质数(即素数,除了1和它自己以外不再能被其他自然数整除),这个已经比拟麻烦了。假如它不是质数(即是合数时)再斟酌质因数分解,魔兽私服发布论坛
现在斟酌大数的质因数分解的算法实现。目前没有明白的思路,魔兽有私服吗,盼望看到的人能给我供给辅助。
一个有益的东西,求两个数的最至公约数。
辗转相除法(欧几里德算法):
调用这个函数必需是a>=b
int gcd(int a, int b)
{
    int c;
    if(b=0)return a;
    for(c = a%b; c>0; c = a%b)
    {
        a=b;
        b=c;
    }
    return b;
}
对于大数,~~你是我一生最爱的人!《伤感》,这个算法存在一个缺点,超过盘算机芯片位数的数据的模运算须要自己实现,峰回路转,且效力极其低下,改用以下算法(stein算法):
int gcd(int a, int b)
{
    if (a<b)
    {
        int c=a;
        a=b;
        b=c;
    }
    if (b==0) return a;
    if (a%2 == 0)
        if (b%2 == 0)
            return 2*gcd(a/2, b/2);
        else
            return gcd(a/2,b);
    else
        if (b%2 == 0)
            return gcd(a, b/2);
        else
            return gcd((a+b)/2,(a-b)/2);
}由于除以2是移位运算,模2只须要简略断定最低位,所以这个算法对于大数效力非常高。
好了,回到我们的问题,大数的质因数分解,人生小语。由于有了这个取最至公约数的算法,我们现在须要做的事就是在最短的时光内找到一个数与大数的最至公约数不为1,然后持续寻找。
特殊地:对于偶数,2确定是它的质因数,所以直接提取出2。
对于寻找这个数有个思路:
a/2 和 a/2+1
或者a的平方根取整和再加一的数。
待续。

推荐文章
热门文章top10
  • [转]今晚,坐在电脑前,握一杯咖啡,什么都
  • [转]来自酒厂的秘方~~教你制作葡萄酒[图片]
  • [转]笑喷了!!这些话你肯定会用到!~![图
  • [转]全球最值得听的100首英文歌[图片][音乐
  • 动物搞笑对话
  • [转]国家对不起这位老人[图片][信纸]
  • [转]五险一金,终于懂了
  • [转]教你做个漂亮的空间[图片][Flash]
  • [转]一个被诅咒的魔兽帐号请扶墙观看
  • 心灵鸡汤。人生哲理。
  • 完美世界,喜剧网游,网络游戏,3D网游,永久免费网游,完美时空,公会,魔族,游戏,MMOG,RPG,热门,流行,攻城,黄金装备,极品装备,戒指,聊天,PKwww.175zz.com
    Copyright 2007-2009 最新私服网 All Rights Reserved

    *注释:本站发布所有均来自互联网,与本站无关。请玩家仔细辨认游戏信息的真实性,避免上当受骗!