Go coding in go way GopherChina 2017 15 April 2017 Tony Bai Neusoft 人类语言与思维:萨丕尔-沃夫假说 "语言影响/决定思维" - 萨丕尔-沃夫假说 ("Language inuences/determines thought" - Sapir-Whorf hypothesis) 编程语言与思维:图灵奖得主的认知 "A language that doesn't aect the way you think about programming is not worth knowing." - Alan J. Perlis(艾伦·佩利),首届图灵奖得主 问题: 素数筛 素数是一个自然数,它具有两个截然不同的自然数除数:1和它本身。 要找到小于或等于给定 整数n的素数,我们可以使用Eratosthenes' sieve(埃拉托斯特尼)算法 (https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes) 。 算法描述:先用最小的素数2去筛,把2的倍数剔除掉;下一个未筛除的数就是素数(这里是3)。 再用这个素数3去筛,筛除掉3的倍数... 这样不断重复下去,直到筛完为止。 sieve.c //基于数组的内存操作 void sieve() { int c, i,j,numbers[LIMIT], primes[PRIMES]; for (i=0;i numbers[i]=i+2; /*fill the array with natural numbers*/ } for (i=0;i if (numbers[i]!=-1){ for (j=2*numbers[i]-2;j numbers[j]=-1; /*sieve the non-primes*/ } } c = j = 0; for (i=0;i