吸血鬼 java_吸血鬼数

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

代码:

/** * 功能:找出四位数中由二位数相乘得出的吸血鬼数 * @author wiley */public class Vampire { public static void main(String[] arg){ String[] ar_str1,ar_str2; int sum=0; //双重循环穷举 for(int i=10;i<100;i++){ //j=i+1避免重复 for(int j=i+1;j<100;j++){ int i_val=i*j; if(i_val<1000||i_val>9999)continue;//积小于1000或大于9999排除,继续下一轮环 ar_str1=String.valueOf(i_val).split(""); ar_str2=(String.valueOf(i)+String.valueOf(j)).split(""); java.util.Arrays.sort(ar_str1); java.util.Arrays.sort(ar_str2); if(java.util.Arrays.equals(ar_str1, ar_str2)){//排序后比较,为真则找到一组 sum++; System.out.println("第"+sum+"组: "+i+"*"+j+"="+i_val); } } } System.out.println("共找到"+sum+"组吸血鬼数"); }}运行结果:C:\work>java Vampire第1组: 15*93=1395第2组: 21*60=1260第3组: 21*87=1827第4组: 27*81=2187第5组: 30*51=1530第6组: 35*41=1435第7组: 80*86=6880共找到7组吸血鬼数关于吸血鬼数:

若 合成数 v 有偶数个位n ,且是 n/2 个位的正整数 x 和 y 的积,而且 x 和 y 不是同时以0为个位数,组成 x 和 y 的数字,刚好就是 v 的数字,那麽 v 就是 吸血鬼数 (vampire number),而 x 和 y 则称为 尖牙 。

例如1260是吸血鬼数,21和60是其尖牙,因为21×60=1260。可是126000=210×600却非,因为210和600都以0为个位数。

吸血鬼数是 傅利曼数 的一种。

1994年 柯利弗德·皮寇弗 在 Usenet 社群sci.math的文章中首度提出吸血鬼数。后来皮寇弗将吸血鬼数写入他的书 Keys to Infinity 的第30章�

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值