vb判断素数的程序代码(vb中判断素数)
vb判断素数
正确程序如下(可以通过比较寻找自己的错误):
Private Sub Command1_Click()
X = Text1.Text
For i = 2 To X - 1
If X Mod i = 0 Then
F = 1
Exit For
End If
Next i
If F = 1 Then
Label2.Caption = "你输入的数是" X ",该数不是素数。"
Else
Label2.Caption = "你输入的数是" X ",该数是素数。"
End If
End Sub
扩展资料:
质数(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数。
根据算术基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积;而且如果不考虑这些质数在乘积中的顺序,那么写出来的形式是唯一的。最小的质数是2。
目前为止,人们未找到一个公式可求出所有质数。
2016年1月,发现世界上迄今为止最大的质数,长达2233万位,如果用普通字号将它打印出来长度将超过65公里。

判断一个数是否为素数的vb程序代码是什么?
#includelt;stdio.hgt;
int sushu()
{
int i,leap=1;int m;
scanf("%d",m);
for(i=2;ilt;m;i++){
if(m%i==0)/*判断条件为真时,即表示m存在1和自身以外的其他因数。
判断条件是为假时,即不会执行此if下的语句,leap值不变,仍为1,程序继续向下执行*/
{
leap=0;break;
}
}
if(leap==1){
return leap;
}
}
int main()
{
switch(sushu())
{
case 1:
printf("Prime!\n");
break;
case 0:
printf("Not Prime!\n");
break;
}
return 0;
}
扩展资料:
在主函数中输入一个大于1的正整数,通过调用这个函数,输出该数是否为素数的信息。
如果该数为素数,输出信息为:
Prime!
若该数不为素数,则输出信息为:
Not Prime!
输入输出在主函数中进行
输入描述
输入一个大于1的正整数。
输出描述
对输入的正整数进行素数的判定:
如果该数为素数,输出信息为:
Prime!
若该数不为素数,则输出信息为:
Not Prime!
输出信息单独占一行。
输入样例
18
输出样例
Not Prime!
vb中判断质数的程序
Private Sub Command1_Click()
Dim n As Integer, i As Integer
n = Val(InputBox("输入一个大于1的正整数"))
For i = 2 To n - 1
If n Mod i = 0 Then Exit For
Next i
If i n - 1 Then
Print n; "是质数"
Else
Print n; "不是质数"
End If
End Sub
vb编写程序,从键盘输入一个数,判断输入的数是否素数。
Private?Sub?Command1_Click()
????Dim?n?As?Long
????n?=?Val(InputBox("请输入要判断的大于0的数:"))
????If?n??1?Then?MsgBox?"你输入的是0":?Exit?Sub
????If?zhi(n)?Then?MsgBox?"是素数"?Else?MsgBox?"不是素数"
End?Sub
Private?Function?zhi(x?As?Long)?As?Boolean
????Dim?b?As?Single,?i?As?Long,?f?As?Long
????For?i?=?2?To?x?-?1
????????If?x?Mod?i?=?0?Then
????????????f?=?1:?Exit?For
????????End?If
????Next
????If?f?=?1?Then?zhi?=?False?Else?zhi?=?True
End?Function
判断素数的vb程序代码
人家是要在*******处填入代码,而不修改其他地方,楼上虽然方法对的,但是添加了一个布尔型变量,用以判断,不符合题意。
其实题目的思路是这样的:
从2开始到比x小1的数字,如果x可以被其中一个数整除,那么x就不是素数,这是跳出循环,i应该比x小,否则当i=x的时候,循环结束,这是x就是素数,i应该等于x
所以:
i=x 是素数
ix 不是素数
因此,***** 处填入
i=x
VB程序设计:判断一个数是否为质数(素数)。
原则上是要判断是否能被一个不是1和本身的数整除。
简单的方法是从2到本身-1的数做为除数进行循环不,逐一判断能否整除,出现整除情况即断定非质数。但这种方法的计算量较大,因为有些数是明显不用的,如大于本身2分之一的,处于3分之一到2分之一之间的,等等。
优化的方法是:
Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim num As Integer
Dim i As Integer = 2
If IsNumeric(TextBox1.Text) Then
num = CInt(TextBox1.Text)
Dim j As Integer = num
If num 2 Then
While i j
Dim k As Integer = num / i
Dim a As Double = CDbl(num) / CDbl(i)
If System.Math.Abs(a - k) 1.0E-20 Then
Label1.Text = num.ToString + "不是质数"
Exit While
Else
j = CInt(a) + 1
i += 1
End If
End While
If i = j Then
Label1.Text = num.ToString + "是质数"
End If
ElseIf num = 2 Then
Label1.Text = num.ToString + "是质数"
End If
Else
Label1.Text = "输入数据有误"
End If
End Sub