#include <bits/stdc++.h>
using namespace std;
bool asal_mi(int n) {
// 2'den küçük sayılar için.
if (n <= 1)
return false;
for (int i = 2; i * i <= n; i++) {
// 2'den kök(n)'e kadarki herhangi bir sayıya bölünebiliyorsa n asal değildir.
// Burada ilk böleni bulduğumuz an direkt false döndürdüğümüz için aslında
// biraz daha optimize oluyor. Hep kök(n)'e kadar ilerleseydik daha uzun sürerdi.
if (n % i == 0)
return false;
}
// Yoksa asaldır.
return true;
}
int main() {
int n = 10'000'000;
int asal_sayisi = 0;
for (int sayi = 1; sayi <= n; sayi++) {
asal_sayisi += asal_mi(sayi);
}
cout << "1'den " << n << "'e kadar " << asal_sayisi << " adet asal sayi var."
<< "\n";
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpib29sIGFzYWxfbWkoaW50IG4pIHsKICAgIC8vIDInZGVuIGvDvMOnw7xrIHNhecSxbGFyIGnDp2luLgogICAgaWYgKG4gPD0gMSkKICAgICAgICByZXR1cm4gZmFsc2U7CgogICAgZm9yIChpbnQgaSA9IDI7IGkgKiBpIDw9IG47IGkrKykgewogICAgICAgIC8vIDInZGVuIGvDtmsobiknZSBrYWRhcmtpIGhlcmhhbmdpIGJpciBzYXnEsXlhIGLDtmzDvG5lYmlsaXlvcnNhIG4gYXNhbCBkZcSfaWxkaXIuCiAgICAgICAgLy8gQnVyYWRhIGlsayBiw7ZsZW5pIGJ1bGR1xJ91bXV6IGFuIGRpcmVrdCBmYWxzZSBkw7ZuZMO8cmTDvMSfw7xtw7x6IGnDp2luIGFzbMSxbmRhCiAgICAgICAgLy8gYmlyYXogZGFoYSBvcHRpbWl6ZSBvbHV5b3IuIEhlcCBrw7ZrKG4pJ2Uga2FkYXIgaWxlcmxlc2V5ZGlrIGRhaGEgdXp1biBzw7xyZXJkaS4KICAgICAgICBpZiAobiAlIGkgPT0gMCkKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIC8vIFlva3NhIGFzYWxkxLFyLgogICAgcmV0dXJuIHRydWU7Cn0KCmludCBtYWluKCkgewogICAgaW50IG4gPSAxMCcwMDAnMDAwOwoKICAgIGludCBhc2FsX3NheWlzaSA9IDA7CiAgICBmb3IgKGludCBzYXlpID0gMTsgc2F5aSA8PSBuOyBzYXlpKyspIHsKICAgICAgICBhc2FsX3NheWlzaSArPSBhc2FsX21pKHNheWkpOwogICAgfQoKICAgIGNvdXQgPDwgIjEnZGVuICIgPDwgbiA8PCAiJ2Uga2FkYXIgIiA8PCBhc2FsX3NheWlzaSA8PCAiIGFkZXQgYXNhbCBzYXlpIHZhci4iCiAgICAgICAgIDw8ICJcbiI7Cn0=