素数与π
关于素数的初步讲解,请戳这儿。
本文包含读《隐藏在素数规律中的π》 的学习笔记。
今有结论如下。
若一整数
则以原点为圆心、 为半径的圆上有格点个数其中 是素数,且 ,有
题目描述
求一个给定的圆 ,在圆周上有多少个点的坐标是整数。
此部分视频 17:53 中有详细讲解。附一参考资料。
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#define reg register
typedef long long ll;
int n,r;
ll ans=1;
bool tf[500010];
int pr[100010];
int sum=0;
int len=0;
void reset(){
memset(tf,1,sizeof(tf));tf[1]=0;
for(reg int i=2;i<=n;++i){
if(!tf[i]) continue;
pr[++len]=i;
for(reg int j=i+i;j<=n;j+=i)
tf[j]=0;
}
}
int main(){
scanf("%d",&r);n=sqrt(r);
reset();
for(reg int i=1;i<=len;++i){
sum=0;
while(r%pr[i]==0){
r/=pr[i];
++sum;
}
if(pr[i]%4==1) ans*=sum+sum+1;
}
if(r>1&&r%4==1) ans*=3;
printf("%lld",ans*4);
}
最后,推荐一下 lz 蛋疼写的一道数学趣题。

浙公网安备 33010602011771号