九月 6th, 2008

C语言练习 - 用筛选法算质数。

1,110 views, C, by Allen Dang.

这是《C和指针》第六章的习题,用筛选法算质数。因为用到了动态数组,所以需要gcc 3.4 以上版本编译。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
void primes(int range)
{
	int width = range / 2; //只计算奇数,空间效率提高一倍。
	char nums[width];
	char *pnums;
	size_t i, j, temp;
 
	for(pnums = nums; pnums < nums + width; pnums++)
	{
		*pnums = TRUE;
	}
 
	for(i = 1; i < width; i++)
	{
		pnums = nums + i;
		if (*pnums)
		{
			temp = i * 2 + 1;
			for(j = i + 1; j < width; j++)
			{
				if (*++pnums)
				{
					if (!((j * 2 + 1) % temp))
						*pnums = FALSE;
				}
			}
		}
	}
 
	printf ("1 2 ");
	for(i = 1; i < width; i++)
	{
		if (nums[i])
			printf("%d ", i * 2 + 1);
	}
 
	printf("\n");
}

Back Top

重新开始学习C语言的第一段小程序 - del_substr。 Core Image 学习笔记 - 为照片加边框和EXIF信息。

Responses to “C语言练习 - 用筛选法算质数。”

  1. Hi, 您好.

    在网上查到您了Blog上有一个帖子是Cocoa 学习资源分享,
    

    最近对Cocoa比较感兴趣,可惜没有什么资料,正好搜索到你的帖子,但是发现里面的一些共享都已经不能下截了,能否通过邮件或其它方式共享一下您的资料,不胜感谢.
    邮件是: essence.zeng@gmail.com

  2. 留言还一定要给email,垃圾邮件就这样一点点多出来的…
    这个颜色顺眼不少~就是RSS和MailTo两个图标大得吓人。MailTo的tooltip也是”feeds”,而信是发给”PutYourEmail_Here@gmail.com“…

  3. 恩,我也看到了,懒得改了,直接换主题!

发表回复

Back Top