质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。
质数的判断在很多题目中都会用到,而这里给出了一种最为常用的判断质数的方法——暴力求法。
暴力判断质数
如果说题目中只是要去判断很少的几个质数,就直接暴力判断就好了。
从2开始一直到sqrt(x)去枚举所有的数,看如果其中有一个数能整除x那么x就不是一个质数,相反如果一个数都除不开x就代表x是一个质数。
那么为什么枚举到sqrt(x)就够了呢?因为如果说大于sqrt(x)时有一个数j能整除x,那么对应的i = x / j也能整除x,而i必然小于sqrt(x),所以说如果x能被一个大于sqrt(x)的数整除,那么他就必然能被一个小于sqrt(x)的数整除。
代码就很简单了,一个轻松的模拟就OK了。
# include <cstdio>
# include <iostream>
# include <cmath>