Print out all prime numbers in a given string. abc2134kd31 -> 2, 13, 3, 3, 31
bool is_prime(long long n) {
if(n <= 2) return true;
if(n % 2 == 0) return false; // forgot
for(int i=3; i*i <= n; i+=2)
if(n % i == 0) return false;
return true;
}
bool is_digit(char c) {
return c >= '0' && c <= '9';
}
void print_prime_in_string (const string& s) {
if(s.empty()) return;
int N = s.size();
for(int i=0; i<N; i++) {
if(is_digit(s[i]) == false) continue;
long long sum = 0;
int j = i;
while(j < N && is_digit(s[j])) {
sum = 10 * sum + s[j] - '0';
if(is_prime(sum))
cout << sum << endl;
j++;
}
}
}