OLD-idmessage-107051

#1923835
-sc-
Участник

За .NET ни светлое будущее, ни могила. Он просто займет свою нишу.Насчет производительности, конечно надо мерить на одном и том же компе. Я вот тоже тут накидал немного кода, измеряйте))
#include #include
const unsigned char True = 1;const unsigned char False = 0;
// быстрый кореньunsigned int sqroot(unsigned int x);// простые числа методом решета Эратосфенаvoid prime_n(unsigned char *v, unsigned int n);// печатает простые числаvoid print_n(unsigned char *v, unsigned int n);
// точка входа))int main(int argc, char* argv[]){const unsigned int n = 100000;unsigned char v[n]; //здесь можно инициализировать, но не буду))prime_n(v, n);print_n(v, n);return 0;}
unsigned int sqroot(unsigned int x){unsigned int a = 1, b = x + 1, ab, xx;while((b – a) > 1){ab = (a + b) / 2;xx = x / ab;if(xx >= ab)a = ab;elseb = ab;}return a;}
void prime_n(unsigned char *v/*array*/, unsigned int n /*size*/){memset(v, True, sizeof(v[0]) * n);for(unsigned int i = 2, j, root = sqroot(n); i <= root; ++i)if(v[i]){j = i + i;while(j < n){v[j] = False;j = j + i;}}}
void print_n(unsigned char *v, unsigned int n){for(unsigned int i = 0; i < n; ++i)if(v[i])printf("%d\n", i);}