一条学校的ACM演练题目,很让人郁闷
今天之所以想讲关于求质数的算法,完全跟这条题目有关,看到题目的朋友一定现在已经有了思路了吧,不过下面的讲解会让你很郁闷,hoho,带上你的思维,跟着我来
第一,分析题目 排除10000以内,就是求一个质数满足其的值等于两个质数的平方和就是要满足
K= A^2 + B^2 这个要求,其中A,B是质数,K当然是要求的质数,那好解法可以这样求一个质数,然后再求出另一个不同的,为什么不同,要是相同 K>2的话,K肯定不质数了,好然后再平方啊,再来相加,最后再验证所得的K是不质数了,结果出来,说实话,当你等待了N秒之后发现结构仍然没有出来之后的时候你会觉得自己的算法该优化了,其实我开始是这么想的,结果。。。
好,说说我的想法 ,讲点数学吧
(1) (A + B)^2 = A^2 + 2*AB + B^2 ,"平方和"与"和的平方的"转换公式
(2)奇偶公式:
两个偶数之和是偶数,两个偶数之积是偶数
两个奇数之和是偶数,两个奇数之积是奇数
今天之所以想讲关于求质数的算法,完全跟这条题目有关,看到题目的朋友一定现在已经有了思路了吧,不过下面的讲解会让你很郁闷,hoho,带上你的思维,跟着我来
第一,分析题目 排除10000以内,就是求一个质数满足其的值等于两个质数的平方和就是要满足
K= A^2 + B^2 这个要求,其中A,B是质数,K当然是要求的质数,那好解法可以这样求一个质数,然后再求出另一个不同的,为什么不同,要是相同 K>2的话,K肯定不质数了,好然后再平方啊,再来相加,最后再验证所得的K是不质数了,结果出来,说实话,当你等待了N秒之后发现结构仍然没有出来之后的时候你会觉得自己的算法该优化了,其实我开始是这么想的,结果。。。
好,说说我的想法 ,讲点数学吧
(1) (A + B)^2 = A^2 + 2*AB + B^2 ,"平方和"与"和的平方的"转换公式
(2)奇偶公式:
两个偶数之和是偶数,两个偶数之积是偶数
两个奇数之和是偶数,两个奇数之积是奇数