判断素数

329   = 3 1      3 4      3 *    316

1.一个质数的判断

bool judge(int n){
    if(n < 2){
        return false;
    }
    
    int bound = sqrt(n);
    
    for(int i = 0;i < bound;i++){
        if(n % i == 0){
            return false;
        }
    }
    
    return true;
}

2.快速幂

329   = 3 1       3 4       38   *    316

29 = 11101(2)。对于n转化成二进制的每位,遇到0,倍乘;遇到1,将累乘的值乘到答案里。

//快速幂 求 x的n次方 结果的最后三位 
int quickPower(int x,int n){
    int answer = 1;
    int mod = 1000;
    while(n){ 
        if(n % 2){
            answer *= x;
            answer %= mod;
        }
        n>>1;//右移1位 
        x *= x; 
        x %= mod;
    } 
}
原文地址:https://www.cnblogs.com/juanzhi/p/12917093.html