import java.util.*; import java.util.regex.*; class JudegePrime { public static void main(String[] args) { Scanner sc =new Scanner(system.in); String sRegex = "^[1-9]\\d*$"; Pattern p = Pattern.compile(sRegex); Matcher m = null; while(true) { System.out.println("请输入数据m:"); String sValue = sc.next(); m = p.matcher(sValue); if(!m.matches()) { System.out.println("输入数据不符合要求,请重新输入。"); continue; } if(bIsPrime(Integer.parseInt(sValue))) { System.out.println(sValue + "是素数。"); } else { System.out.println(sValue + "不是素数。"); } } } /* 用6N±1法求素数。 任何一个自然数,总可以表示成为如下的形式之一: 6N,6N+1,6N+2,6N+3,6N+4,6N+5 (N=0,1,2,…) 显然,当N≥1时,6N,6N+2,6N+3,6N+4都不是素数,只有形如6N+1和6N+5的自然数有可能是素数。所以,除了2和3之外, 所有的素数都可以表示成6N±1的形式(N为自然数)。 */ private static boolean bIsPrime(int n) { if(n<2)return false; if(n==2 ||n==3)return true; if((n-1)%6==0 ||(n-5) % 6==0)return true; return false; } }
原文地址:https://www.jb51.cc/regex/360813.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。