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;
}