作者:乔山办公网日期:
返回目录:excel表格制作
1、查表法
100以内的质数表:2、3、5、7、11、13、17、19、23、29、31、37、41、43、47、53、59、61、67、71、73、79、83、89、97,共25个质数.
2、试除法
①判断100以内的数是zhidao不是质数,也可以用 2、3、5、7这四个质数连续去试除这个数,如果没有一个数能整除专它,这个数一定是质数,否则就不是质数。如用2、3、5、7连续去除119,它能被7整除,因而它是合数。
②判断100-200的数是不是质数,则需要用2、3、5、7、11、13 这六个质数连续去试除,如果没有一个数能整属除它,这个数就是质数,否则不是。如143,它能被11整除,因而它是合数。
如果要判断更大的数(500以内),则必须用2、3、5、7、11、17、19、23这几个质数连续去除,方法同前,不再赘述。
3、完全平方法
对于一个不十分大的自然数n,如果能找到一个比n大,但又最接近n的完全平方数m2,再用小于m的所有质数去除n,如果没有一个质数能整除它,这个数就
=IF(AND(A1>=2,A1=INT(A1)),IF(SUM(--(MOD(A1,ROW(INDIRECT("1:"&INT(SQRT(A1)))))=0))>1,"合数zd","质数"),"非质非合版")
按ctrl+shift+enter结束输入(数组公权式)。
详细参见我的blog:http://hi.baidu.com/qdike/blog/item/cbfe5a2c6689dcec8a1399e0.html
假设在A1单元格zhidao是要判断的数专据,则在其他空白单元格(如A2)输入数组公式(输入方法:输入公式后,不是按回车,而是按组合键 Ctrl+Shift+Enter):
=IF(AND(A1>4,A1=INT(A1)),IF(OR(INT(A1/ROW(INDIRECT("2:"&INT(SQRT(A1)))))*ROW(INDIRECT("2:"&INT(SQRT(A1))))=A1),"合数","质数"),IF(OR(A1={2,3}),"质数","合数"))
即可判断出A1里的数据是质数还是合数。不过,要注意其范围:可判别不大于4295098368的数(包括小数和所有负数属),可判别出的最大质数为4295098349
数据在A列,B列计算数据的最小因数,C列判断质合,copy
注意事项
1、本公式对0,1,因数大于65536的数据不能判断。因受excel2003版本限制,仅能对最小因数在百65536以下的数据作出判断(2007可以扩展至1048576)
2、若数据列的数据大的话,比如1000个,公式会很卡。
B2=INDEX(ROW($2:$65536),MATCH(1,((MOD(A2/ROW($2:$65536),1)=0)*ROW($2:$65536)>0)*1,))
这个是数组公式,公式输完后,光度标放在公式编辑栏同时按下CTRL+SHIFT+回车键,使数组公式生效
C2=IF(B2=A2,"质数","合数")
两个公式向下复制。
A列可输入公式=INT(RAND()*1000000)按F9见随机验证。