这道程序什么意思啊!救命!!!
小弟因为想过高程,所以暑假一直在复习,遇到一道程序,百思不得其解,希望各位高手可以帮帮我,写个注释!!!求求你了!!!
本程序采用筛选法求质数,程序用一个无符号整数数组代表筛,它的每一位对应一个整数。因除2以外,其余所有的质数都是奇数。约定数组按位的顺序,集资对应整数,5,7,9,11…
程序首先将数组所能容纳的上述奇数放入筛中,即将数组的全部位都置成1。
从筛中找出最小的数,该数即为质数,然后将该质数的倍数从筛中去掉,即将在数组中与
它们对应的位置成0。因偶数不在筛中,去掉的数是找到的质数的1倍,3倍,5倍,…整数。反复上述过程,直至筛为空。程序就能求得指定范围内的全部质数。
#include <stdio.h>
#define N 50
#define LN 16
main()
{
unsigned int sieve[N],prime[N];
unsigned int j,w,p,c;
for (j=0; j<N; j++)
{ sieve[j]=0xFFFFFFFF;
prime[j]=0x00;
}
w=0;
j=0;
do
{ while (((0x01 << (j++)) & sieve[w])==0x00);
p=w*LN + j-1;
c=2*(p+1)+1;
prime[w] |= (0x01 << (j-1));
do
{ sieve[p/LN] &= (~(0x01 << p%LN));
w++;
j=0;
}while (p < N*LN-LN);
while ((sieve(w] == 0x00) && (w < N-1))
{ w++;
j=0;
}
}while (sieve[w]);
printf("%5d",2);
for (w=0; w<N; w++)
{ for (j=0; j<LN; j++)
{ if((0x01<<j) & prime[w])
printf("%5d", 2*(w*LN+j+1)+1);
}
printf("\n");
}
本程序采用筛选法求质数,程序用一个无符号整数数组代表筛,它的每一位对应一个整数。因除2以外,其余所有的质数都是奇数。约定数组按位的顺序,集资对应整数,5,7,9,11…
程序首先将数组所能容纳的上述奇数放入筛中,即将数组的全部位都置成1。
从筛中找出最小的数,该数即为质数,然后将该质数的倍数从筛中去掉,即将在数组中与
它们对应的位置成0。因偶数不在筛中,去掉的数是找到的质数的1倍,3倍,5倍,…整数。反复上述过程,直至筛为空。程序就能求得指定范围内的全部质数。
#include <stdio.h>
#define N 50
#define LN 16
main()
{
unsigned int sieve[N],prime[N];
unsigned int j,w,p,c;
for (j=0; j<N; j++)
{ sieve[j]=0xFFFFFFFF;
prime[j]=0x00;
}
w=0;
j=0;
do
{ while (((0x01 << (j++)) & sieve[w])==0x00);
p=w*LN + j-1;
c=2*(p+1)+1;
prime[w] |= (0x01 << (j-1));
do
{ sieve[p/LN] &= (~(0x01 << p%LN));
w++;
j=0;
}while (p < N*LN-LN);
while ((sieve(w] == 0x00) && (w < N-1))
{ w++;
j=0;
}
}while (sieve[w]);
printf("%5d",2);
for (w=0; w<N; w++)
{ for (j=0; j<LN; j++)
{ if((0x01<<j) & prime[w])
printf("%5d", 2*(w*LN+j+1)+1);
}
printf("\n");
}
...全文
相关推荐
hadoop.dll & winutils.exe For hadoop-2.7.1
我是搬运工,适合不方便连接外网的朋友使用O(∩_∩)O多谢!
hadoop.dll winutils.exe for hadoop2.7.1
hadoop.dll winutils.exe for hadoop2.7.1 下载版本,
hadoop.dll-and-winutils.exe-for-hadoop2.7
windows运行spark或者hadoop程序报winutils.exe错误,将此文件放到hadoop的bin目录下或者直接将HADOOP_HOME配置为此目录即可解决
hadoop.dll-and-winutils.exe-for-hadoop2.7.7-on-windows_X64-master
64位编译资源,windows运行hadoop程序报错误,将此文件放到hadoop安装的bin目录下,hadoop.dll放置在Windows\System下。
hadoop2.7.1 windows7 32 位 hadoop.dll winutils.exe
hadoop2.7.1 windows7 32 位 hadoop.dll winutils.exe.在window7 32位下,编译的源码。


