论坛里已经有很多关于素数的帖子了,你搜一下,里面有种算法跟你这个不一样,那个就是筛法
回复 10楼 liuting8181
不好意思,习惯了叫Eratosthenes筛法为筛选法,也许以前信安课的习惯吧。比如要求100内的素数:
先求出10内的素数2,3,5,7然后循环判断100内的数,凡为这4个数的倍数则为合数,否则为素数。
int is_primer(int n) { int i, j = (int)sqrt(n), k = n < 2 ? 0 : 1; for(i = 2; i <= j && k; i++) (n % i) || (k = 0); return k; }