数论专题 T4

来源:互联网 发布:淘宝怎样投诉客服 编辑:程序博客网 时间:2024/05/01 17:50

题目描述

作为体育委员,C君负责这次运动会仪仗队的训练。仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图)。 现在,C君希望你告诉他队伍整齐时能看到的学生人数。

输入输出格式

输入格式:

共一个数N

输出格式:

共一个数,即C君应看到的学生人数。

输入输出样例

输入样例#1:
4
输出样例#1:
9

说明

【数据规模和约定】

对于 100% 的数据,1 ≤ N ≤ 40000

题解:

画图找规律发现能看到点的横纵坐标必定互质,题目就转换为求1<=i<=n中比i小的质数的个数和sum,因为横纵坐标可以互换所以

ans=sum*2+1


const  maxn=40000;var  phi:array[1..maxn]of longint;  n,ans,i,j:longint;procedure init;var  i:longint;begin  readln(n);  phi[1]:=1;ans:=1;  for i:=2 to n-1 do  begin    if phi[i]=0 then    begin      j:=i;      while j<=n do      begin        if (phi[j]=0) then phi[j]:=j;        phi[j]:=phi[j] div i*(i-1);        j:=j+i;      end;    end;    ans:=ans+phi[i];  end;end;begin  init;  writeln(ans*2+1);end.


0 0
原创粉丝点击