All pastes #294258 Raw Edit

Unnamed

public text v1 · immutable
#294258 ·published 2006-12-28 08:34 UTC
rendered paste body
#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;
}