| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2564 人关注过本帖
标题:[求助] 求一个算法
只看楼主 加入收藏
牟晓舟
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-3-14
收藏
得分:0 
先写一个求根号n内所有质数的程序,然后对求出的每个质数去试n,看看能不能整除,如果可以就递归
2007-04-24 16:46
拐拐毛
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-4-26
收藏
得分:0 

谁告诉我 把几个数编成 杨辉三角 怎么做,我刚学vb,不懂。

2007-04-26 20:20
chenlili097
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2007-4-26
收藏
得分:0 
这个问题我用c语言编过
不用建表的

2007-04-26 21:54
hyhhd
Rank: 2
等 级:论坛游民
威 望:1
帖 子:502
专家分:44
注 册:2006-5-12
收藏
得分:0 
我想是不是这样:
将输入的自然数分解成质数(这是典型算法,这里不用再讲);然后找见一个加一个,将他们一个一个加入集合中;然后检验他们是否满足:进行自然数mod质数=0,比如从集合取出2,进行10mod2=0,如果满足,则再进行fix(10/2)=5,在集合中检验是否存在5,如果存在则2、5满足,这时:text1="2*5=10",再将集合中的2、5删除,然后再循环,循环次数=fix(10/2)+1。
你可以试试!

2007-04-27 12:45
hyhhd
Rank: 2
等 级:论坛游民
威 望:1
帖 子:502
专家分:44
注 册:2006-5-12
收藏
得分:0 
更正一下:循环次数=int(集合的数量/2)

2007-04-27 12:56
gkimjatl
Rank: 1
等 级:新手上路
帖 子:106
专家分:0
注 册:2007-3-20
收藏
得分:0 

能不能给出代码.不明白啊..谢谢了

2007-04-27 21:36
hyhhd
Rank: 2
等 级:论坛游民
威 望:1
帖 子:502
专家分:44
注 册:2006-5-12
收藏
得分:0 

我做了一个,完全满足要求:

1、在form1中:
Option Explicit

Private Sub Command1_Click()
Dim Z As New Class1
Dim x As Variant

If Text1(0) = "" Then Exit Sub

Screen.MousePointer = 11
Text1(1).Text = Z.PrimeNumber(CLng(Text1(0)))

With List1
.Clear
For Each x In Z.PNCollection
.AddItem x

Next
End With

Label1(2).Caption = "质数集合(" & Z.PNCollection.Count & "个):"
Screen.MousePointer = 0

End Sub
2、在class1中:
Option Explicit

Public PNCollection As New Collection ''''质数集合
Private CalcCollection As New Collection ''''结果集合

''''''''判断是否为质数'''''''''

Private Function IfPrimeNumber(ByVal Num As Long) As Boolean
Dim i As Long
Dim L As Long

IfPrimeNumber = True
If Num >= 2 Then
L = Sqr(Num)
For i = 2 To L
If Num Mod i = 0 Then
IfPrimeNumber = False
Exit For

End If

Next

End If

End Function

'''''''将质数添加进集合中''''''''

Private Sub Add(ByVal Num As Long)
Dim i As Long

For i = 2 To Num
If IfPrimeNumber(i) = True Then
PNCollection.Add i

End If

Next

End Sub

'''''''处理自然数''''''

Public Function PrimeNumber(ByVal Num As Long) As String
Add Num
PrimeNumber = Trim(Num)

End Function

''''''''处理质数集合'''''''

Private Function Trim(ByVal Num As Long) As String
Dim x As Variant
Dim Value As Long
Dim Value1 As Double
Dim Value2 As Long
Dim Msg As String

Value2 = Num

For Each x In PNCollection
10:

Value = Fix(Num / x) '''(1)取出一个质数,进行短除运算,得到商
Value1 = Num Mod x '''(2)取出余数

'''(3)判断该商是否为和数,余数是否同时为0

If IfPrimeNumber(Value) = False And Value1 = 0 Then
'''''(4)如果为合数,将质数x添加到CalcCollection中,
''''''同时,将商继续短除

CalcCollection.Add x
Num = Value
GoTo 10

ElseIf IfPrimeNumber(Value) = True And Value1 = 0 Then
'''(5)如果满足,这该数为质数,且满足x*value=num,此时添加到CalcCollection中
CalcCollection.Add x
CalcCollection.Add Value
Exit For

End If

Num = Value2

Next

Num = 1
For Each x In CalcCollection
If Msg = "" Then
Msg = x
Num = x

Else
Msg = Msg & " * " & x
Num = Num * x
If Num = Value2 Then Exit For

End If
Next
Msg = Msg & " = " & Value2

Trim = Msg

End Function
大家根据代码新建相关控件!

[此贴子已经被作者于2007-4-28 20:01:34编辑过]


2007-04-28 19:57
zkkpkk
Rank: 2
等 级:论坛游民
威 望:5
帖 子:489
专家分:28
注 册:2006-6-17
收藏
得分:0 
素数嘛,这学期选修JAVA,老师叫我们做个判断100是不是素数的算法,也不知道怎么那么喜欢这个算法,听说选VB的也是这个,点到我,然后我上去把0到100的素数扔进一数组,直接查表,底下同学都说我赖皮,我说是在你们论坛学到的

[此贴子已经被作者于2007-4-28 20:11:03编辑过]



Viva,espana!
2007-04-28 20:07
hyhhd
Rank: 2
等 级:论坛游民
威 望:1
帖 子:502
专家分:44
注 册:2006-5-12
收藏
得分:0 
回复:(gkimjatl)[求助] 求一个算法
现在把附件传上来。
w1lZ7wNG.rar (3.23 KB) [求助] 求一个算法


[此贴子已经被作者于2007-4-28 21:55:20编辑过]


2007-04-28 21:54
shuangziputi
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-4-28
收藏
得分:0 
用这个程序试试
dim m%,x%,y%
m=text1.text
x=1
y=m
for i=1 to m
x=x+1
y=y-1
for a=2 to x-1
if x mod a <>0 then exi for
next
for a=2 to y-1
if y mod x <>0 then exit for
next
if m=x*y then print x & y
next
2007-04-28 22:33
快速回复:[求助] 求一个算法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013687 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved