正确程序如下(可以通过比较寻找自己的错误):
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公里。
#include&ltstdio.h&gt
int sushu()
{
int i,leap=1int m
scanf("%d",&m)
for(i=2i&ltmi++){
if(m%i==0)/*判断条件为真时,即表示m存在1和自身以外的其他因数。
判断条件是为假时,即不会执行此if下的让改语句,leap值不变,仍为1,程序继续向下执行*/
{
leap=0break
}
}
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!
原则上是要判断是否能被一个不是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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)