摘要:
最近在复习算法,这道题是练手的过程中遇上的,感觉有点意思,拿出来分享一下心得。不扯闲话了,首先分析题目,最直观的做法就是从2开始遍历到n,对每个数判断其是否为素数。这是比较笨的做法。我们可以这样考虑,如果判断一个数N是否为素数,主要是看其有没有小于等于根号N的素因子。如果有则说明是合数,如果没有则可以断定其必为素数(想想这是为什么)。这样我们可以得到大概的一个递推逻辑:要求n以下的素数,可以先求出根号n以下的素数,根据前面的分析,如果某个数不能整除根号n以下的素数,则其必为素数;而要求根号n以下的素数,则又可以先求出sqrt(sqrt(n))以下的素数……这样,当开根号后的值小于10的时候,可 阅读全文
posted @ 2013-01-19 00:53
fancywyz
阅读(996)
评论(0)
推荐(0)
浙公网安备 33010602011771号