一个数n是素数的条件:不能被2 ~ n-1整除

来源:百度知道 编辑:UC知道 时间:2024/06/03 21:02:05
一个数n是素数的条件:不能被2 ~ n-1整除
用For…….Next语句
Dim I as Integer,N As Integer
N=val(InputBox(""))
For I=2 to N-1
If N Mod I=0 Then Exit For '如果能被2 ~ N-1中任何一个数整除,则不是素数,跳出For循环
Next I
If I >= N Then
Print N & "是素数"
Else
Print N & "不是素数"
End If

“If I >= N Then
Print N & "是素数"”到底是什么意思?有谁能帮我说清楚啊,i再怎么也不会比n大啊。
各位网友,请知道的,和我说一下,这道题困扰我很久了,真的很需要答案。

z

是的,执行有误 那你改一下吧
If I >= ((N+1) div 2 ) Then
Print N & "是素数"
Else
Print N & "不是素数"
End If

显然,N+1与N-1是奇数,N是偶数(所以N被2整除)

下面只需证明N可以被3整除(即N是3的倍数),用反证法。
假设N不能被3整除,则N mod 3 == 1或者N mod 3 == 2(Mod是取余数)
若N mod 3 == 1 则(N-1) mod 3 == 0,即N-1是3的倍数,与N-1是素数矛盾
若N mod 3 == 2,则(N+1) mod 3 == 3 mod 3 ==0,即N+1是3的倍数,与N+1是素数矛盾。
所以,前提假设不成立,所以N能被3整除。

所以,N同时能被2和3整除,所以N能被6整除。

有没有不能被2,3,5,7整除,却是素数的数啊? N是大于10的整数,N+1,N-1都是素数(只能被1和自身整除的数),证明:N能被6整除 一个素数加上1000以后是37的倍数,求满足这个条件的最小素数 Matlab解题急用:求〔2,999〕中同时满足于下列所有条件的数,要求:该数各位数字之和为奇数;该数是素数 怎样知道一个数是否是素数?? C# 判断一个数是否是素数 在n*n的棋盘上填入1,2,3,4.......n*n,共有n*n个数,使得任意两个相邻数的和为素数 一个数只要不能被2,3,5,7整除是不是就可以断定他是素数了? 一个三位数,能被2整除,又有约数5,百位上数字是最小素数,十位上数字是百位上数字的倍数.三位数是几? C语言程序设计-一个素数加上1000后是37的倍数,满足这个条件的最小的素数