素数:大于1的自然数中,只能被1和它本身整除的数。
#include <stdio.h>
#include <time.h>
#include <math.h>
int isPrime (int n) {
if (n < 2) return 0; //大于1呀 才可能是素数呢
if (n == 2) return 1; //2是素数哦
if (n % 2 == 0) return 0;
//如果是合数,必定是两个数的乘积,这两个数肯定一个大于等于根号N,一个小于等于根号N
int sq = sqrt(n);
for (int i = 3; i <= sq; i += 2) {//偶数已经判断过了
if (n % i == 0) return 0;
}
return 1;
}
int main(){
int t1 = clock();
for (int i = 3; i <= 100000; i++) {
if (isPrime(i)) {
printf(" %d ",i);
}
}
int t2 = clock();
printf("\n运行时间:%d\n", t2 - t1);
}