数学
陈梦夏
时光正好
展开
-
神奇的快速幂
快速幂:快速的求某个数的幂次,一般是针对大数比如:一般情况:311 是11个3连续相乘快速幂:311 = 3(8+2+1)=3(23+21+20)=323*321*320 那么如何来求每一项(323 、321、320 )呢?Temp *= temp; // 1011每一位的对应的都是上一位的翻倍的幂次,所以相乘则幂次相加代码如下:#include原创 2016-07-12 08:13:52 · 340 阅读 · 0 评论 -
最大公约数和最小公约数
1.求两个数的最大公约数int gcd(int a,int b){ // 约数和倍数不包含0,则遇到0情况则直接排除 if(0==a||0==b) return 0; int t=a%b; while(t) { a=b; b=t; t=a%b; } return b;}求多个数(原创 2016-07-12 19:43:06 · 668 阅读 · 0 评论 -
筛选素数
一般筛选素数是判断这个数是否存在除了1和本身外的其他约数,但是对于大数的时候就不适合使用了。筛选素数的过程:质数的倍数的都需要被除去const int V=10000;int a[V],prime[V],j=0;// j记录的是素数的个数void get_prime(){ //a[i]为0则i为素数 memset(a,0,sizeof(a)); for(in原创 2016-07-12 20:14:09 · 439 阅读 · 0 评论