Аналог задачки начального класса - разделить например яблоки на несколько ребят. Всем ли достанется одинаково. И если яблоки можно разделить только по одной штуке, то число простое.
Код.
JAVA
public static boolean isPrime(int n) {
return !new String(new char[n]).matches(".?|(..+?)\\1+");
}
Python
def is_prime(n):
return not re.match(r'^.?$|^(..+?)\1+$', '1'*n)
JavaScript ECMA6
function isPrime(n) {
var re = /^.?$|^(..+?)\1+$/;
return !re.test('1'.repeat(n));
}
JavaScript
function isPrime(n) {
var re = /^.?$|^(..+?)\1+$/;
return !re.test(Array(n+1).join('1'));
}
Perl
sub is_prime {
return !((1x$_[0]) =~ /^.?$|^(..+?)\1+$/);
}
C#
public static bool IsPrime(int n) {
return !Regex.IsMatch(new string('1', n), "^.?$|^(..+?)\\1+$");
}
Источник
https://illya.sh/the-codeumentary-blog/regular-expression-check-if-number-is-prime/
Комментариев нет:
Отправить комментарий