⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zp1574.cpp

📁 一个acm题目系统会自动删除debug和release目录
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
#include <stdio.h>
#include <math.h>

int a[100100][3];
int prm(int m, int n)
{
  int t=m%n;
  while (t)
  {
    m=n;
    n=t;
    t=m%n;
  }
  if (n==1)
    return 1;
  else
    return 0;
}
int main(int argc, char* argv[])
{
  int i,j,k,s;
  s=0;
  for (i=3;s<=100000;i++)
  {
    if (i%2==1)
    {
      for (j=sqrt(i);j>0;j--)
        if (i%j==0)
        {
          k=i/j;
          if (j%2==1 && 2*i<k*k-j*j)
            if (prm(i,(k*k-j*j)/2) && prm(i,(k*k+j*j)/2))
            {
              a[++s][0]=i;
              a[s][1]=(k*k-j*j)/2;
              a[s][2]=(k*k+j*j)/2;
            }
        }
    }
    else
    {
      for (j=sqrt(i/2);j>0;j--)
        if ((i/2)%j==0)
        {
          k=i/j/2;
          if ((k-j)%2==1 && i<k*k-j*j)
            if (prm(i,k*k-j*j) && prm(i,k*k+j*j))
            {
              a[++s][0]=i;
              a[s][1]=k*k-j*j;
              a[s][2]=k*k+j*j;
            }
        }
    }
  }
  while (scanf("%d",&i)!=EOF)
    printf("%d %d %d\n",a[i][0],a[i][1],a[i][2]);
  return 0;
}
//---------------------------------------------------------------------------
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -