Есть код на Си который складывает все простые числа которые меньше двух миллионов. Компилирую gcc под линуксом и вендой. Под вендой результат не верный. Объясните почему так происходит. В Си новичок, хотеться разобраться. Бочку делал, хуйцы сосал, другой компилятор (tcc) пробовал. inb4 венда говно. #include <stdio.h> #include <stdlib.h> int main(){ char x[2000000]; int i,j; unsigned long long sum=0; for(i=0; i<2000000; x[i++]=0); x[0] = 1; x[1] = 1; for(i=1; i<2000000;i++) { if(x[i] == 0) { for(j=2*i;j<2000000;j=j+i) x[j] = 1; } } for(i=0; i<2000000;i++) if(x[i] == 0) sum = sum + i; printf("%llu\n",sum); return 0; }
Есть код на Си который складывает все простые числа которые меньше двух миллионов. Компилирую gcc под линуксом и вендой. Под вендой результат не верный. Объясните почему так происходит. В Си новичок, хотеться разобраться. Бочку делал, хуйцы сосал, другой компилятор (tcc) пробовал. inb4 венда говно.
#include <stdio.h> #include <stdlib.h> int main(){ char x[2000000]; int i,j; unsigned long long sum=0; for(i=0; i<2000000; x[i++]=0); x[0] = 1; x[1] = 1; for(i=1; i<2000000;i++) { if(x[i] == 0) { for(j=2*i;j<2000000;j=j+i) x[j] = 1; } } for(i=0; i<2000000;i++) if(x[i] == 0) sum = sum + i; printf("%llu\n",sum); return 0; }
>>1245 жутко уебищный быдлокодпосмотри хотя бы тут http://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BF%D1%80%D0%BE%D1%81%D1%82%D1%8B%D1%85_%D1%87%D0%B8%D1%81%D0%B5%D0%BB
>>1246Подправил код из википедии, все равно под вендой не правильно считает. Прозреваю что считает все-таки правильно, но printf() выводит криво. Как исправить? #include <stdio.h> #define N 2000000 int main( void ) { int i, k, flag; unsigned long long sum; for (i = 2; i < N; i++) { flag = 1; for (k = 2; k*k <= i; k++) { if (i % k == 0) { flag = 0; break; } } if (flag == 1) { sum = sum + i; printf("%d, %llu \n", i, sum); } } return 0; }
>>1246Подправил код из википедии, все равно под вендой не правильно считает. Прозреваю что считает все-таки правильно, но printf() выводит криво. Как исправить?
#include <stdio.h> #define N 2000000 int main( void ) { int i, k, flag; unsigned long long sum; for (i = 2; i < N; i++) { flag = 1; for (k = 2; k*k <= i; k++) { if (i % k == 0) { flag = 0; break; } } if (flag == 1) { sum = sum + i; printf("%d, %llu \n", i, sum); } } return 0; }
Разобрался, под вендой вместо %llu, нужно использовать %I64u. С printf("%d, %I64u \n", i, sum); все заработало.
%llu
%I64u
printf("%d, %I64u \n", i, sum);
Добро пожаловать в Проект Эйлер :3#!/usr/bin/perl#runs 2 minutes on 2,8GHz 256MB with 2 millions in line 18sub is_prime{$i=2;while ($i<=sqrt($_[0])){ if (!($_[0]%$i)){return 0;}else {$i++;} }return 1;}#$test=2;while ($test<20){if (is_prime($test)!=0){$sum+=$test;$test++;}else {$test++;}}print $sum;
Добро пожаловать в Проект Эйлер :3
#!/usr/bin/perl#runs 2 minutes on 2,8GHz 256MB with 2 millions in line 18sub is_prime{$i=2;while ($i<=sqrt($_[0])){ if (!($_[0]%$i)){return 0;}else {$i++;} }return 1;}
#
$test=2;while ($test<20){if (is_prime($test)!=0){$sum+=$test;$test++;}else {$test++;}}print $sum;
Пидарасы! Я из-за вашего Эйлера теперь ночью спать не могу, эти ёбаные задачи никак из головы не выходят!!! Как я вас всех ненавижу, чтоб у вас яйца полопались, уроды!!!
>>1253Думаешь нам легко?
>>1245>char x[2000000];Ой
>>1245
>char x[2000000];
Ой
>>1246>жутко уебищный быдлокод>>1266>ОйХочу заметить что этот былдокод работает просто реактивно.~0.5 сек >>1245~9 сек >>1247
>>1246
>жутко уебищный быдлокод
>>1266
>Ой
Хочу заметить что этот былдокод работает просто реактивно.
~0.5 сек >>1245~9 сек >>1247
>>1247>printf("%d, %llu \n", i, sum);>>1269>>Хочу заметить что этот былдокод работает просто реактивно.Ой
>>1247
>printf("%d, %llu \n", i, sum);
>>1269
>>Хочу заметить что этот былдокод работает просто реактивно.
>>1305Эта строчка была закомментирована, алсо почитай http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes может перестанешь ой-кать не по делу.
>>1247>if (flag == 1) >sum = sum + i;Выглядет как говно.
>if (flag == 1) >sum = sum + i;
Выглядет как говно.
if (flag){ sum += i; ...
>>1340>Выглядет>глядет>дет/s/ там -->Нахуй там <--
>>1340
>Выглядет>глядет>дет
/s/ там -->Нахуй там <--
>>1318>алсо почитай http://en.wikipedia.org/wiki/Sieve_of_EratosthenesЧитаем и ВНЕЗАПНО осознаем, что четные числа простыми быть не могут, то есть им вообще не место в этом вашем char x[2000000]. А если им там не место, то какого хуя они занимают целый мегабайт? Целый, блядь, МЕГАБАЙТ. И это при том, что 640 килобайт хватит всем (с). А вы просто берете эти 640 килобайт и еще (1024-640), и засираете их никому нахуй не нужными нулями.>Ой
>>1318
>алсо почитай http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes
Читаем и ВНЕЗАПНО осознаем, что четные числа простыми быть не могут, то есть им вообще не место в этом вашем char x[2000000]. А если им там не место, то какого хуя они занимают целый мегабайт? Целый, блядь, МЕГАБАЙТ. И это при том, что 640 килобайт хватит всем (с). А вы просто берете эти 640 килобайт и еще (1024-640), и засираете их никому нахуй не нужными нулями.
>>1343То есть ты предлагаешь ради мегабайта, который освобождается через полсекунды, добавить алгоритм определения четных чисел, который будет будет замедлять все вычисление, в чем смысл такой оптимизации?>>1340Ок, больше не буду так делать.>В Си новичок
>>1343То есть ты предлагаешь ради мегабайта, который освобождается через полсекунды, добавить алгоритм определения четных чисел, который будет будет замедлять все вычисление, в чем смысл такой оптимизации?
>>1340Ок, больше не буду так делать.
>В Си новичок
>>1344 Раз новичок, то и пиши так, чтобы ТЕБЕ было понятно.
>>1344>добавить алгоритм определения четных чиселда ты, как я посмотрю, дурак! прибавлять к нечетным числам по 2 никак нельзя?
>>1344
>добавить алгоритм определения четных чисел
да ты, как я посмотрю, дурак! прибавлять к нечетным числам по 2 никак нельзя?
>>1356 Сдержаннее, тут не /s/Не смекнуть сразу, что вместо ++ нужно +2 — это еще не значит "дурак".
Вы доблоёбы, если считаете себя программистами, посылая меня в /s/. Вы обычное ничтожество, которое ради нескольких строчек быдлокода, я повторю, БЫДЛОКОДА, создали цылый тред./s/-кун
Вы доблоёбы, если считаете себя программистами, посылая меня в /s/. Вы обычное ничтожество, которое ради нескольких строчек быдлокода, я повторю, БЫДЛОКОДА, создали цылый тред.
/s/-кун
>>1360А ты бля вообще кто такой? Тебя в этот тред приглашали?
>>1366Я БЫДЛОКОДЕР, сосу хуи, делаю бочки, ебу своего отца-шлюху. А вот кто ты такой? через жопу заводной
- wakaba 3.0.8 + futaba + futallaby -