逖靖寒的世界
Share my world. Share your viewpoint.
博客园
社区
首页
新随笔
联系
管理
订阅
随笔- 106 文章- 13 评论- 885
求解2个数的最大公约数 和 求解质因数
1
using
System;
2
using
System.Collections.Generic;
3
using
System.Text;
4
5
namespace
GCD
6
{
7
class
Program
8
{
9
static
void
Main(
string
[] args)
10
{
11
int
b
=
120
;
12
int
s
=
40
;
13
14
System.Console.WriteLine(
"
求解120和40的最大公约数:
"
+
gcd(b, s));
15
16
System.Console.WriteLine(
"
求154的质因数:
"
);
17
int
[] zys
=
Sieve(
154
);
18
for
(
int
i
=
0
; i
<
zys.Length; i
++
)
19
{
20
System.Console.Write(zys[i]
+
"
"
);
21
}
22
System.Console.WriteLine();
23
24
25
}
26
27
/**/
///
<summary>
28
///
欧几里德法求最大公约数
29
///
</summary>
30
///
<param name="b">
较大的数
</param>
31
///
<param name="s">
较小的数
</param>
32
///
<returns>
两个数的最大公约数
</returns>
33
static
int
gcd(
int
b,
int
s)
34
{
35
if
(s
==
1
)
36
{
37
return
s;
38
}
39
40
int
temp
=
s
%
b;
41
42
if
(temp
==
0
)
43
{
44
return
s;
45
}
46
47
return
gcd(s, temp);
48
}
49
50
/**/
///
<summary>
51
///
利用 埃拉托色尼“筛” 求解质因数
52
///
</summary>
53
///
<param name="n">
需要求解质因数的数
</param>
54
///
<returns>
该数的质因数
</returns>
55
static
int
[] Sieve(
int
n)
56
{
57
int
a
=
0
;
58
n
-=
2
;
59
int
[] resource
=
new
int
[n];
60
61
for
(
int
i
=
0
; i
<
n; i
++
)
62
{
63
resource[i]
=
i
+
2
;
64
}
65
66
//
向下取整,减少循环次数。
67
int
num
=
(
int
)Math.Sqrt(n);
68
69
for
(
int
i
=
0
; i
<
num; i
++
)
70
{
71
int
baseNum
=
resource[i];
72
73
if
(baseNum
==
0
)
74
{
75
continue
;
76
}
77
78
for
(
int
j
=
i
+
1
; j
<
n; j
++
)
79
{
80
if
(resource[j]
==
0
)
81
{
82
continue
;
83
}
84
85
if
(resource[j]
%
baseNum
==
0
)
86
{
87
resource[j]
=
0
;
88
a
++
;
89
}
90
}
91
}
92
93
int
[] result
=
new
int
[n
-
a];
94
int
index
=
0
;
95
for
(
int
i
=
0
; i
<
n; i
++
)
96
{
97
if
(resource[i]
!=
0
)
98
{
99
result[index]
=
resource[i];
100
index
++
;
101
}
102
}
103
104
return
result;
105
}
106
}
107
}
108
这是《算法设计与分析基础》 1.1 中的C#实现。
如果大家有自己的看法或更好的实现,大家可以一起讨论。
posted @ 2007-11-04 09:08
逖靖寒
阅读(477)
评论(0)
编辑
收藏
所属分类:
读书
、
算法
新用户注册
刷新评论列表
标题
姓名
主页
Email
(博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
网站首页
新闻频道
社区
小组
博问
网摘
闪存
找找看
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
该文被作者在 2007-11-04 09:11 编辑过
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索
相关文章:
抽象类和接口的区别
const 和 static readonly 区别?
关于IE问题,请教和求救
【整理】【最近更新日期:2005-10-15】【找工作必读!】来自IT公司速查手册的各大IT公司薪资和待遇内幕
jQuery和微软
最聪明的浏览器和操作系统
vb.net和c#团队协作的问题求解
数据库题目求解
译码和接口
冷启动和热启动
相关链接:
所属分类的其他文章:
C#实现遗传算法,模拟花朵的进化。
《Head First HTML with CSS and XHTML》 读后感
动态规划:利用WarShell算法求有向图的传递闭包
时空权衡:利用额外的空间提高字符串匹配的速度
变治法:用C#实现堆的建立与堆排序
如何高效求2个整数的乘积。
如何高效地判断奇数和偶数
编程实现1到N个数的所有排列组合
减治法:C#实现插入排序
分治法:用C#实现快速排序
最新IT新闻:
Silverlight 2正式版SDK可以下载
Silverlight对Flash 微软打垮Adobe
IBM扩大研究规模 在上海成立研究院
eWeek评Google八大“20%项目”
微软终于发布Silverlight 2正式版
公告
我的最新闪存
君子不器
10-3 12:47
<
2007年11月
>
日
一
二
三
四
五
六
28
29
30
31
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
1
2
3
4
5
6
7
8
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
留言簿
给我留言
查看留言
我管理的小组
Visual Studio
博客园仿真足球交流小组
我参加的小组
大连.NET俱乐部
程序员音乐空间
设计模式
.NET 新手小组
python
ASP.NET
软件工程师日语
Debug 探索团队小组
我参与的团队
大连.NET俱乐部(0/807)
Windows Embedded开发(0/99)
Debug 探索团队(0/53)
随笔分类
(150)
.NET 编程(26)
(rss)
ACM
(rss)
Python(4)
(rss)
Silverlight(2)
(rss)
TopCoder(3)
(rss)
博客园仿真足球竞赛平台(10)
(rss)
读书(17)
(rss)
个人制作(17)
(rss)
简历(1)
(rss)
软件设计(1)
(rss)
生活(36)
(rss)
算法(25)
(rss)
新手教程(2)
(rss)
英语(1)
(rss)
杂九杂十(5)
(rss)
随笔档案
(107)
2008年10月 (5)
2008年9月 (1)
2008年8月 (10)
2008年7月 (1)
2008年6月 (9)
2008年5月 (4)
2008年4月 (2)
2008年3月 (4)
2008年2月 (2)
2008年1月 (6)
2007年12月 (5)
2007年11月 (13)
2007年10月 (5)
2007年9月 (6)
2007年8月 (7)
2007年7月 (2)
2007年6月 (7)
2007年5月 (7)
2007年4月 (7)
2007年3月 (1)
2007年2月 (2)
2007年1月 (1)
文章档案
(12)
2007年5月 (1)
2007年4月 (10)
2007年2月 (1)
相册
My Photo
开源项目
AForge
A C# framework designed for developers and researchers in the fields of Computer Vision and Artificial Intelligence - image processing, neural networks, genetic algorithms, machine learning, etc.
朋友的博客
IT乌吉线
一起参加PH2008的队友
游戏AI
AI Game Dev
非常不错的一个网站,一直在更新。
Game/AI
有关游戏AI的一些评论
最新随笔
1. 第一次参加SRM
2. TopCoder Inv 2001 R1 200point
3. TopCoder SRM 152 div 2 500point
4. 基于silverlight 1.0的中国象棋游戏
5. 感叹Silverlight中的JavaScript智能感应
6. 了解博客园仿真足球竞赛平台的所有内部运行细节
7. 博客园仿真足球竞赛平台更新信息
8. 仿真足球队的整体的策略简单实现
9. 仿真足球最快截球的设计和实现
10. 深入理解整个比赛的执行流程
积分与排名
积分 - 131710
排名 - 298
最新评论
1. re: TopCoder Inv 2001 R1 200point
@刘永辉
人很多,你可以去www.topcoder.com/tc看看。 (逖靖寒)
2. re: TopCoder Inv 2001 R1 200point
@逖靖寒
参加的人多吗?那天有空我也去参加看看 (刘永辉)
3. re: 第一次参加SRM
@刘永辉
TopCoder里面的算法比赛的一个名称。 (逖靖寒)
4. re: TopCoder Inv 2001 R1 200point
@刘永辉
也是一个比赛,不过比较综合,算法只是其中的一项。 (逖靖寒)
5. re: 第一次参加SRM
srm又是什么? (刘永辉)
阅读排行榜
1. 人工神经网络入门(1) —— 单层人工神经网络应用示例(4072)
2. 释放你的编程技能与激情--博客园仿真足球竞赛平台预览(3092)
3. C#实现遗传算法,模拟花朵的进化。(2932)
4. 使用NAnt构建入门(2833)
5. 如何高效地判断奇数和偶数(2750)
评论排行榜
1. 打印一个N位二进制数的所有表示(61)
2. Enjoy the Game(55)
3. 如何高效地判断奇数和偶数(49)
4. 释放你的编程技能与激情--博客园仿真足球竞赛平台预览(43)
5. 提高您的联系人查找体验,《Smart Contacts》发布(42)
60天内阅读排行
1. 释放你的编程技能与激情--博客园仿真足球竞赛平台预览(3092)
2. 博客园仿真足球竞赛平台基本原理分析(2305)
3. 仿真足球最快截球的设计和实现(1636)
4. 如何利用CSharp球队模板编写自己的足球队(1635)
5. 深入理解博客园仿真足球竞赛平台的仿真周期(1538)