Cod sursa(job #3314477)

Utilizator tudor13mai@gmail.comBuciuman Tudor [email protected] Data 10 octombrie 2025 10:13:26
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.19 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ciur.in");
ofstream fout("ciur.out");
#define Mod 666013
int n,m;
struct s{
long long s[2][2];
} e;
s produs(s a, s b){
s z;
z.s[0][0]=((a.s[0][0]*b.s[0][0])%Mod+(a.s[0][1]*b.s[1][0])%Mod)%Mod;
z.s[0][1]=((a.s[0][0]*b.s[0][1])%Mod+(a.s[0][1]*b.s[1][1])%Mod)%Mod;
z.s[1][0]=((a.s[1][0]*b.s[0][0])%Mod+(a.s[1][1]*b.s[1][0])%Mod)%Mod;
z.s[1][1]=((a.s[1][0]*b.s[0][1])%Mod+(a.s[1][1]*b.s[1][1])%Mod)%Mod;
return z;
}
s Putere(s w,int n){
    if(n==1){
        return w;
    }
    if(n==0){
        return e;
    }
    if(n%2==0){
        s f=Putere(w,n/2);
        return produs(f,f);
    }
    else{
        return produs(Putere(w,n-1),w);
    }

}
int Euclid(int n){
int d=2,p=n;
while(d*d<=n){
    if(n%d==0){
        while(n%d==0){
            n/=d;
        }
    }
    d++;
}
if(n>1){
    p=p*(n-1)/n;
}
return p;
}
int pr[2000100];
int main(){
    int n;
    for(int i=2; i<=1501; i++){
        for(int j=2; i*j<2000100; j++){
            pr[i*j]=1;
        }
    }
    fin>>n;
    int r=0;
    for(int i=2; i<=n; i++){
        if(!pr[i])
            r++;
    }
    fout<<r;
    return 0;
}