摘要: 约定:x%y为x取模y,即x除以y所得的余数,当x1) {//一直计算,直到指数小于或等于1 if((p%2)!=0) {// 如果指数p是奇数,则说明计算后会剩一个多余的数,那么在这里把它乘到结果中 odd*=main; //把“剩下的”乘起来 } main*=main; //主体乘方 p/=2; //指数除以2 } return main*odd; //最后把主体和“剩下的”乘起来作为结果}够完美了吗?不,还不够!看出来了吗?main是没有必要的,并且我们可以有更快的代码来判断奇数。要... 阅读全文
posted @ 2013-08-04 12:32 Geekers 阅读(528) 评论(0) 推荐(0) 编辑
摘要: int prime(int n){ int i; if(n == 2) return 1; if(n%2 == 0) return 0; for(i=3; i*i 0;i++) 5 { 6 t[i]=n%10; 7 n/=10; 8 } 9 len = i;10 for(i=0,j=len-1;isqrt(i) ) prime[num++] = i; //这个prime[]是int型,跟下面讲的不同。 } 这就是最一般的求解n以内素数的算法。复杂度是o(n*sqrt(n)),... 阅读全文
posted @ 2013-08-04 00:08 Geekers 阅读(743) 评论(0) 推荐(0) 编辑