#include <stdio.h>
#define U64 unsigned long long
int main() {
U64 i;
// (gcc-4.3) 100 млрд. - 44 минуты (2640 секунд);
// 10 млрд. - 3 минуты 39 секунд (219 секунд);
// 10 млрд. - 3 минуты 40 секунд (220 секунд);
// 1 млрд. - 20.6 секунды;
// 100 млн. - 1.946 секунды;
// up to 1.8*10^20 (18 446 744 073 709 551 616)
U64 N = 1000000000ULL; // 1 млрд.
U64 k = 0;
for (i = 0; i < N; i++) {
k += i%10; // последняя цифра
}
printf ("%llu\n", k);
return 0;
}
gcc-4.3 -Wall -march=athlon64 -O3 -o _${NAME} ${NAME}.c
$ time ./_matrix
4500000000
real 0m20.608s
user 0m20.609s
sys 0m0.000s
Время выполнения для N = 1 млрд - 20.6 секунды (см. выше).
CPU: Athlon II X2 240, 2800 MHz (L2 2x1024kB), DDR3 1333 MHz 9-9-9-24.