Unnamed
public text v1 · immutable#include <stdio.h>
#define MAX 2000010
long Tot[MAX];
unsigned long long SumTot = 0;
long log_base2(unsigned long long num)
{
unsigned long long prod = 1;
long i;
for(i = 0 ; ; i++) {
if(prod >= num)
break;
prod <<= 1;
}
return i;
}
int main()
{
long n, i, j;
scanf("%ld", &n);
for (i = 2; i <= n; i++){
if (Tot[i] == 0) {
for (j = i; j <= n; j += i) {
if(!Tot[j]) {
Tot[j] = j;
}
Tot[j] /= i;
Tot[j] *= (i-1);
}
}
SumTot += Tot[i];
}
printf("%ld", log_base2(SumTot));
return 0;
}