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