hdu 2854 Central Meridian Number

Problem Description
A Central Meridian (ACM) Number N is a positive integer satisfies that given two positive integers A and B, and among A, B and N, we have  
N | ((A^2)*B+1) Then N | (A^2+B)
Now, here is a number x, you need to tell me if it is ACM number or not.
 

Input
The first line there is a number T (0<T<5000), denoting the test case number.
The following T lines for each line there is a positive number N (0<N<5000) you need to judge.
 

Output
For each case, output “YES” if the given number is Kitty Number, “NO” if it is not.
 

Sample Input
  
  
2 3 7
 

Sample Output
  
  
YES NO
Hint
Hint X | Y means X is a factor of Y, for example 3 | 9; X^2 means X multiplies itself, for example 3^2 = 9; X*Y means X multiplies Y, for example 3*3 = 9.
主要是题意的理解:n需要满足题上说的两个条件,对任意的正整数A,B;因此,对于只满足前一个条件的n不符合
 
#include<stdio.h> #include<math.h> #include<string.h> #define N 5005 int f[N]; void init() {  int n,i,j,x,y;  for(n=1;n<=5000;n++)  {   for(i=1;i<=1000;i++)   {    for(j=1;j<=1000;j++)    {     y=i*i*j+1;     if(y%n==0)     {      y=i*i+j;      if(y%n)      {       f[n]=1;       break;      }     }    }    if(f[n]==1)     break;   }  } } int main() {  int t,n;  memset(f,0,sizeof(f));  init();  scanf("%d",&t);  while(t--)  {   scanf("%d",&n);   if(f[n])    printf("NO\n");   else    printf("YES\n");  }  return 0; }
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值