Pagini recente » Diferente pentru utilizator/robybrasov intre reviziile 78 si 57 | Cod sursa (job #2274564) | Obiective infoarena | Cod sursa (job #87218) | Cod sursa (job #201301)
Cod sursa(job #201301)
#include<stdio.h>
#include<math.h>
#define MAX 2000005
int a[68];
int main(){
FILE *fin=fopen("ciur.in","r");
FILE *fout=fopen("ciur.out","w");
int N,k=0;
fscanf(fin,"%d",&N);
++k;
int i=2;
for(int j=2;(long long)i*j<=N;j++) a[i*j/30]=a[i*j/30]|(1<<((i*j)%30));
for(i=3;i<=N;i+=2)
if(a[i/30]&(1<<(i%30))==0){
k++;
for(int j=i;(long long)j*i<=N;j+=2) a[i*j/30]=a[i*j/30]|(1<<((i*j)%30));
}
fprintf(fout,"%d\n",k);
fclose(fin);
fclose(fout);
return 0;
}