随笔分类 -  数论

关于素数(一)
摘要:大于1且不是素数的数成为合数;除了1以外的每一个正整数都是素数的乘积;n要么是素数,要么n有大于1的且小于n的因子;设m是这些因子中最小的一个,那么m必为素数;因此n要么是素数,要么可以被一个小于n的素数(p1)整除;在后一种情形中,有n=p1*n1,1<n1<n;这里n1要么是素数,要么n1可以被一个小于n1的素数p2整除,此时n=p1*n1=p1*n1*n2,(1<n2<n1<n);重复这个方法,得到一列递减的数,n,n1,n2,n3,n4,……nk-1,........它们都大于1,对其中每个数都同样有以上两种可能性成立,但迟早我们必定会接受第一种可能性,此 阅读全文

posted @ 2011-09-13 21:12 Hibernate4 阅读(157) 评论(0) 推荐(0)

欧拉函数
摘要:互质就是两个数的最大公约数是1;欧拉函数是不大于n的数中与n互质的数的数目;φ函数的值 通式:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn),其中p1, p2……pn为x的所有质因数(互不相同),x是不为0的整数。φ(1)=1(唯一和1互质的数就是1本身)。若n是质数p的k次幂,φ(n)=p^k-p^(k-1)=(p-1)p^(k-1),因为除了p的倍数外,其他数都跟n互质。如果n是质数φ(n)=n-1; 阅读全文

posted @ 2011-09-12 21:42 Hibernate4 阅读(159) 评论(0) 推荐(0)

十进制与二进制间的高效转换
摘要:vector<int> bits(32,0); int N;//将N换为二进制放在bits中 for(int i=0;i<32;i++) if(N&(1<<i)) bits[31-i]=1;int res=; for(int i=0;i<32;i++)//将二进制转化为十进制 if(bits[i]) res+=bits[i]<<(31-i); 阅读全文

posted @ 2011-09-11 21:57 Hibernate4 阅读(196) 评论(0) 推荐(0)

导航