你首先要搞明白素数(素数也就是质数)的定义,小学三年级学过,大学初等数论里面又有更加专业的定义:不能被小于它的平方根的所有质数整除就是质数。那么这个平方根内最小的素数就一定是2 ,难道你还不知道2是最小的素数吗?不从2开始判断,难道从3开始判断吗?因为你说的那段程序代码就是根据这个数学定义写的。当然你还可以用其它的方法去写,那就要求你具备一定的数学和程序编写能力。
这就是你说的程序代码 i 是从2开始循环的原因。我分别用c语言 和vb 语言写一下
main()
{int n,r,i;
scanf("%d",&n);
for(i=2;i<=n-1;i++)
{r=n%i;
if(r==0) break;}
if(i>=n)
printf("yes\n");
else printf("no\n");
}
vb言语:
Private Sub Command1_Click()
Dim i , n As Integer
n = Val(InputBox("输入"))
For i = 2 To n - 1
If n Mod i = 0 Then Exit For
Next i
If i >= n Then
msgbox (""& n & "是素数",64,"提示")
Else:
msgbox (""& n & "不是素数",64,"提示")
End If
End Sub
以上程序代码分别在运行环境中调试过,输出结果为真,但是这两段代码还不是很优秀的算法,
当输入比较大的整数时候,循环的数量就很大,每一步就要进行一次计算比对。编程的灵魂就是算法,语法只是一个基础而已,而优秀的算法就是要求你有较高的发散性思维去构思它(所谓的技巧),这些和数学的要求如出一撤。
温馨提示:答案为网友推荐,仅供参考