Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > Помогите перевести код на другой язык.


Автор: ZLOvar 23.5.2011, 17:51
В общем, есть код:
Код

const int N = 1e6;
 
uint64_t magic = 0x0100010001000100LL;
 
int main(int argc, char *argv[])
{
    char p[N+8];
 
    long long sum = 5;
 
    uint64_t* pp = (uint64_t*)p;
    for (int i=0; i<=N/8; ++i)
        *pp++ = magic;
 
    int sqrtN = sqrt(N);
 
    for(int i=5;i<=sqrtN;) {
        int i2 = 2*i;
 
        for(int j=3*i; j<N; j+=i2)
            p[j]=0;
 
        ++i;
        for (; !p[i]; ++i);
    }
 
    for(int i=5; i<N; i+=6) {
        if(p[i])
            sum+=i;
        if(p[i+2])
            sum+=i+2;
    }
 
    printf("%lld\n", sum);
 
    return 0;
}


Он каким-то хитрым образом вычисляет сумму всех простых чисел от 2 до миллиона. Нужна ваша помощь в его переводе на язык Delphi. Если не трудно, распишите по шагам, что делает этот код, и запостите начальное значение всех используемых переменных. Заранее огромное спасибо  smile ! 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)