这样判断素数打印出来的结果是:2-999,请问什么改代码才能出现正确的结果?谢谢!!
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args) {
String str="^1?$|^(11+?)\1+$";
Pattern pattern=Pattern.compile(str);
for(int i=1;i<1000;i++){
String tt=Integer.toBinaryString(i);
Matcher matcher=pattern.matcher(tt);
if(!matcher.matches()){
System.out.println(Integer.parseInt(tt,2));
}
}
}
}
本文探讨了一段使用正则表达式判断素数的Java代码,该代码目前输出了2到999之间的所有数,而非预期的素数。文章详细介绍了代码的工作原理,并提出了修改建议,以准确地识别并打印出指定范围内的素数。
4183

被折叠的 条评论
为什么被折叠?



