Cho dãy số a = {a1, a2, . . . , an}.
Hãy lập trình đếm xem trong dãy có bao nhiêu số thỏa mãn: ai là số nguyên tố và có ba chữ số. Thầy Dũng viết giúp hàm kiểm tra xem một số nguyên cho trước có phải là số nguyên tố hay không như sau:
Input Dòng thứ nhất chứa số nguyên dương n thỏa 1 ≤ n ≤ 105 . Dòng thứ hai chứa n số nguyên ai cách nhau ký tự trắng thỏa 1 ≤ ai ≤ 109
Output In ra số cần đếm theo yêu cầu.
Examples standard
input standard
10
5 4 937 883 353 1 2 3 229 23
output 4
Code:
#include <bits/stdc++.h>
using namespace std;
bool  isPrime(int n)
{
    if(n <= 1)
        return false;
    if(n <= 3)
        return true;
    if(n % 2 == 0 || n % 3 == 0)
        return false;
    for(int i = 5 ; i*i <= n ; i = i + 6)
    {
        if(n % i == 0 || n % (i + 2) == 0)
            return false;
    }
    return true;
}
int dem(long long n)
{
    int j = 0;
    while(n != 0)
    {
        long long t = n % 10;
        j++;
        n = n / 10;
    }
    return j;
}
int main()
{
    long long n;
    cin>>n;
    int a[n];
    for(int i = 0 ; i < n ; i++)
        cin>>a[i];
    int count = 0;
    for(int i = 0 ; i < n ; i++)
    {
        if(isPrime(a[i]) == 1 && dem(a[i]) == 3)
            count++;
    }
    cout<<count;
    return 0;
}
 
 

