#include <stdio.h>
int IsResult(unsigned long xin,unsigned long nin)
{
double res,den,num;
den = (double)(xin - nin);
num = (double)(xin * nin);
res = num/den;
if(res - (long)res < 0.00000001)
return 0;
else
return -1;
}
int GetResult(unsigned long xin,unsigned long nin,unsigned long *y)
{
double res,den,num;
den = (double)(xin - nin);
num = (double)(xin * nin);
res = num/den;
if(res - (unsigned long)res < 0.00000001){
*y = (unsigned long)res;
return 0;
}else
return -1;
}
unsigned int GetResultNum(unsigned long nin)
{
unsigned int resault_num;
unsigned long xin;
resault_num = 0;
for(xin=nin + 1;xin <= nin * 2;xin ++){
if(IsResult(xin,nin) == 0)
resault_num += 1;
}
return resault_num;
}
int ViewResult(unsigned long nin)
{
unsigned int resault_num;
unsigned long xin;
unsigned long y;
resault_num = 0;
for(xin=nin + 1;xin <= nin * 2;xin ++){
if(GetResult(xin,nin,&y) == 0){
printf(" (%ld,%ld)",xin,y);
}
}
printf("\n\n");
return 0;
}
int main(void)
{
unsigned int num;
unsigned long i;
for(i = 4;i < 0xfffffffe;i ++){
num = GetResultNum(i);
if(num >= 1000){
printf("num:%d NO.: %ld\n",num,i);
ViewResult(i);
return 0;
}
}
printf("unsigned long yichu!\n");
return 0;
}
|