(11+?)匹配的是至少两个1,但是因为进行的是懒惰匹配,所以最开始匹配到的是11,并被捕获到了分组\1中。后面部分中,如果11重复了一次或者更多次,那么就是合数。这又是为什么呢?其实非常容易理解:如果数字$a$匹配成功,意味着$a$化作的“1的数组”恰好由不少于2个11组成,也就是,$\exists b>1\land b \in \mathbb N, a=2b$,这自然意味着$a$是一个合数(在这种情况下,$a$还是偶数)。
//判断一个自然数是否为素数
boolisPrime(int n){if(n ==0|| n ==1)returnfalse;if(n ==2)returntrue;for(int i =2; i <= sqrt(n); i++)if(n % i ==0)returnfalse;returntrue;}
1
2
3
4
5
6
7
//判断一个自然数是否为素数
boolisPrime(int n){
if (n ==0|| n ==1)return false;
if (n ==2)return true;
for (int i =2; i <= sqrt(n); i++)if (n % i ==0)return false;
return true;
}
加载评论中...