题目传送门

  题目大意:求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数。

  思路:没思路,看大佬的博客(转载自https://blog.csdn.net/csyzcyj),转载只为记录,详细的证明,大佬的博客已经写得很清楚了,不再赘述,数论题就是这样开心又头秃

#include<bits/stdc++.h>
#define CLR(a,b) memset(a,b,sizeof(a))
using namespace std;
typedef long long ll;
long long R,ans=;
long long gcd(long long x,long long y){return x%y== ? y : gcd(y,x%y);}
bool check(long long y,double x)
{
if(x==floor(x))
{
long long x1=(long long)floor(x);
if(gcd(x1*x1,y*y)== && x1*x1!=y*y)//gcd(A,B)=1并且A!=B
return true;
}
return false;
}
int main()
{ scanf("%lld",&R);
for(long long d=;d<=(long long)sqrt(*R);d++)
{
if((*R)%d==)
{
for(long long a=;a<=(long long)sqrt(*R/(*d));a++)
{
double b=sqrt(((*R)/d)-a*a);
if(check(a,b))
ans++;
}
if(d!=(*R)/d)
{
for(long long a=;a<=(long long)sqrt(d/);a++)
{
double b=sqrt(d-a*a);
if(check(a,b))
ans++;
}
}
}
}
printf("%lld\n",ans*+); return ;
}

最新文章

  1. 0、Web基本概念
  2. Win8/Win10无法打开这个应用 内置管理员账户
  3. spring MVC注解深入研究
  4. 【AdaBoost算法】强分类器训练过程
  5. php敏感词过滤
  6. How to upgrade boost libary using apt-get ?
  7. 利用SCI做的一个足球答题系统
  8. mysql concat和group_concat
  9. 在2015中使用V12版本的ReportView控件,会导致winform窗体不能正常打开
  10. eclipse中使用Lombok
  11. spring boot多数据源配置(mysql,redis,mongodb)实战
  12. 一些恶作剧的vbs程序代码
  13. MySQL Workbench导出Model提示[&#39;ERROR 1064 (42000): You have an error in your SQL syntax....syntax to use near &#39;VISIBLE&#39;]
  14. QT-1-环境搭建QT5.4.1&amp;MinGW4.9.1
  15. TCP的11种状态(转载)
  16. 在Web应用程序中执行计划任务(多线程)
  17. 在linux中使用终端浏览器w3m
  18. [转]ASP.NET Core 十种方式扩展你的 Views
  19. cetos6配置用msmtp和mutt发邮件(阿里云)
  20. Polycarp Restores Permutation

热门文章

  1. 关于ptrdiff_t
  2. poj1722 SUBTRACT
  3. hdu 1556 Color the ball(非线段树做法)
  4. js 二维数组排序sort()函数
  5. 黑盒测试实践--Day7 12.1
  6. C++面试基础
  7. 测试中常用到的linux命令
  8. delphi 数组的使用
  9. C# int?
  10. angular 路由传参