﻿功能:判断数字是否是素数

格式:IsPrime(N)
N:可以为输入的数字或者是矩阵变量,判断的数必须是2^63以内

说明:如果N为素数返回0,如果不为素且非大于0的正整数返回-1,否则返回N的一个质数

备注:根据费马定理,对于数N,如果质数A≥2且A≠N,判断N是否为质数可以根据(A^(N-1)-1)%N是否等于0,如果等于0,则N是质数,否则N是合数.这个定理是否正确,我就不得而知了.

例子:

a=IsPrime(1991321)//回车得到如下结果,即1991321有一个质数109
a =
[ 109.000000000000 ]


a=1:20;b=IsPrime(a)//这条命令判断1到20内数据的素数情况,回车得到如下结果
b =
[ 0.00000000000000    2.00000000000000    0.00000000000000    2.00000000000000    0.00000000000000    2.00000000000000    0.00000000000000    2.00000000000000    3.00000000000000    2.00000000000000    0.00000000000000    2.00000000000000    0.00000000000000    2.00000000000000    3.00000000000000    2.00000000000000    0.00000000000000    2.00000000000000    0.00000000000000    2.00000000000000 ]
