找雷劈数

故事回顾:

        雷劈数,印度某个数学家发现的,之所以叫雷劈数是因为在雷雨天气路边的里程桩号“3025”被雷从中间劈成2半而正好被这个科学家走狗屎运发现的,因为30+25=55,55×55=3025。

        而腾讯的老马脑子里还是带点迷信,当初放号的时候像这类非常不吉利的数字都给注销了,万一哪天被雷劈了他肯定会死不瞑目的。干事业还是得图个吉利,而当初申请8位QQ那段时间腾讯正处于困难时期,听说老马差点50万把QQ卖了,所以对于这些不吉利的东西还是予以避讳。 
        但是老马的智商还是有限的,雷劈数不仅仅只有这一个,比如25502500,24502500,52881984,99980001都是雷劈数!只是60481729这个雷劈数非常出名所以老马予以没收了。。。。。。

 

一个找出雷劈数的程序将会在这里被呈现,这里只是绝对雷劈数(也就是劈开后两边数字字符数目完全相等,或者说原数的字符数目为偶数)

 

#include <stdio.h>
#include <stdlib.h>
#define N 10
void fun(n)
{
int array[N];
int k=0,a;
int j,nf=0,na=0;
int sum;
a=n;
while(a!=0)
{ array[k]=a%10;
 a/=10;
 k++;
}
array[k]='/0';
if(k%2==0){
    for(j=k-1;j>=k/2;j--)
  {
  nf=nf*10+array[j];
  }
 for(j=k/2-1;j>=0;j--)
  {
  na=na*10+array[j];
  }
sum=na+nf;
if(sum*sum==n)
 printf("%-16d",n);
 }
}
main()
{
unsigned int ss;
for(ss=1;ss<=2147483647;ss++)
fun(ss);
}

 

计算结果有

81            2025        3025        9801        494209        998001        

24502500        25502500        52881984        60481729        99980001

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值