如何用算法判断一个数是否是猫扑素数

2015-08-20 07:32:05 +08:00
 des

如果不转换成字符串的话

猫扑素数

形如以 2 开头, 之后跟任意多个 3 的十进制整数而且是个素数, 则它是猫扑素数. 如 2, 23, 233, 2333, 23333 都是猫扑素数, 而 233333 则不是, 它可以分解为 353 x 661.

各位有没有好的思路?

4336 次点击
所在节点    问与答
12 条回复
des
2015-08-20 08:01:35 +08:00
我的思路是先 log10 判断位数,再判断( input -( input mod 10^n )) mod 10^n
最后判断是否是素数
statm
2015-08-20 08:09:29 +08:00
des
2015-08-20 08:14:59 +08:00
@statm 好吧,还是我算法太弱
另外 chrom 打不开
des
2015-08-20 08:17:14 +08:00
@statm 你忘了判断是否是素数了
statm
2015-08-20 08:18:15 +08:00
@des 这个只检查猫扑数。素数的代码一搜一大堆。

boolean isMopNumber (int i )
{
if (i < 10 ) return i == 2;
else return (i % 10 == 3 ) && isMopNumber (i / 10 );
}
chunk
2015-08-20 09:16:12 +08:00
有意思,顶贴
wangjie
2015-08-20 09:28:46 +08:00
function is 猫扑素数($int ) {
for ($i=0;$<$int;$i+=1 ) {

}
}
wangjie
2015-08-20 09:41:02 +08:00
按空格就发出来了 QAQ 好二啊
aheadlead
2015-08-20 10:02:44 +08:00
xmbaozi
2015-08-20 10:08:02 +08:00
@statm 只检查猫扑数的话,用正则
/^23+$/.test (23333 )
des
2015-08-20 10:11:10 +08:00
@xmbaozi 都说了不让转字符串了
zhengnanlee
2015-08-20 10:16:07 +08:00
@aheadlead 太笨了吧用那个算法。。 2333 应该很有规律

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/214435

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX