码迷,mamicode.com
首页 > 其他好文 > 详细

无语凝噎

时间:2015-10-16 21:58:22      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:

 

 

技术分享

忽略如此玛丽苏的题目,这其实是一道数论题,40%的福利(素数)。

自己拿张纸画一下,很快就能找出规律。

program aa;
const a=1000000007;
var n,m,s,i:longint;
sum:int64;
function pd(n:longint):boolean;
var i:longint;
begin
pd:=true;
for i:=2 to trunc(sqrt(n)) do
if (n mod i)=0 then
begin
pd:=false;
break;
end;
end;

function qiu(x,y:longint):int64;
begin
qiu:=((n+1-x)*(m+1-y)*4)mod a+((n+1-y)*(m+1-x)*4)mod a;//这就是朕找的公式。
qiu:=qiu mod a;
if x=y then qiu:=qiu div 2;
end;
begin
readln(n,m,s);
if pd(s)=true then
begin
sum:=(((n+1-s)*m*4)mod a +((m+1-s)*n*4)mod a)mod a;//这是素数的部分,其实直接求也行。
if s=1 then sum:=sum div 2;
writeln(sum);
halt;
end;
for i:=1 to trunc(sqrt(n)) do
if (n mod i)=0 then
begin
sum:=(sum+qiu(i,(n div i)))mod a;
end;
writeln(sum);
end.

无语凝噎

标签:

原文地址:http://www.cnblogs.com/liuxinyu/p/4886453.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!