返回目录

 

题目大意:在复平面上指定一个范围,求这个范围里的高斯素数的密度(即 高斯素数个数/总坐标数, 化为真分数) 。

 

题目类型:基础模拟题 / 数学背景题

 

题目分析:

 

A Gaussian integer a + bi is a Gaussian prime if and only if either:
①One of a, b is zero and the other is a prime number of the form 4n + 3 (with n a nonnegative integer) or its negative -(4n + 3), or
②Both are nonzero and a2 + b2 is a prime number (which will not be of the form 4n + 3).

 

按如上条件判断一个坐标(b, a)是不是高斯素数(这个很好写)。

 

开始我是觉得按照坐标轴象限的关系可以利用对称性,来减少判断次数,直接把每个坐标的结果(0 or 1)算出来储存在gp[201][201]里(-100 ≤ x1 ≤ x2 ≤ 100, -100 ≤ y1 ≤ y2 ≤ 100)。

但是可能哪里搞错了,WA了半天。

反正题目数据量不大。那就改成直接对应每组输入数据,枚举每个坐标,调用判断函数吧。结果A了。无奈。

这题有空再考虑考虑。

 

References
http://en.wikipedia.org/wiki/Gaussian_integer
Weisstein, Eric W. "Gaussian Prime." From MathWorld--A Wolfram Web Resource. http://mathworld.wolfram.com/GaussianPrime.html

 

自己找的:http://tieba.baidu.com/f?kz=836401286 


 代码: