查了一下资料,发现正则表达式竟然可以用来检查素数(http://coolshell.cn/articles/2704.html)!(由于工作需要,几年前开始接触、利用正则表达式,给工作带了很大方便,也曾多次向同事、朋友推荐学习。)
不禁感叹“高手在网络”!这位网友的功力深不可测啊!可谓“正则玩到了极致”!当然,也再次见识了正则表达式的神奇!在这里,也在此推荐有相关工作需要的各位网友学习一下“神奇的正则表达式”!
找到了网友共享的利用上述思路输出素数的Java程序(http://blog.csdn.net/54powerman/article/details/8894791),正好对Java略知一二,一时兴起,略加改进,实现了 利用 Java + 正则表达式 输出孪生素数对。现与各位网友分享:
/**
*
* Title: TwinPrimeNumbers
* Author: matc@mail.whlib.ac.cn
*
**/
public class TwinPrimeNumbers
{
public static void main(String[] args)
{
//main_1();
main_2();
}
//返回一定范围内的素数
public static void main_1()
{
String regex="^1?$|^(11+?)\1+$";
StringBuffer sb=new StringBuffer();
for(int i=1;i<100;i++)
{
sb.append("1");
if(!sb.toString().matches(regex))
{
System.out.println(i);
}
}
}
//返回一定范围内的孪生素数
public static void main_2()
{
String regex="^1?$|^(11+?)\1+$";
StringBuffer sb1=new StringBuffer();
StringBuffer sb2=new StringBuffer();
sb2.append("11");
for(int i=1;i<100;i++)
{
sb1.append("1");
sb2.append("1");
if(!sb1.toString().matches(regex))
{
if(!sb2.toString().matches(regex))
System.out.println(i+"_"+(i+2));
}
}
}
}
转载本文请联系原作者获取授权,同时请注明本文来自马廷灿科学网博客。
链接地址:http://blog.sciencenet.cn/blog-5168-691465.html
上一篇:奇怪现象:“专利权全部无效”后“未缴年费专利权终止”?
下一篇:孪生素数猜想—— 一些有趣的现象