判断素数:只能被1和它本身整除的数(i 作被除数,j 作除数)
法1:
#include<stdio.h>
#include<math.h>
int main() {
int i = 0, count = 0, j = 0;
for (i = 101;i <= 200;i += 2) {
for (j = 2;j <i;j++) {
if (i % j == 0) {
break;
}
}
if (i==j) {
printf("%d ", i);
count++;
}
}
printf("\ncount = %d\n", count);
return 0;
}
法2:
#include<stdio.h>
#include<math.h>
int main() {
int i = 0, count = 0, j = 0;
for (i = 101;i <= 200;i += 2) {
int flag=1;
for (j = 2;j <=sqrt(i);j++) {
if (i % j == 0) {
flag=0;
break;
}
}
if (flag==1) {
printf("%d ", i);
count++;
}
}
printf("\ncount = %d\n", count);
return 0;
}
//代码优化:1.偶数不可能为素数
2.例如m=a*b
a和b中一定至少有一个数<=根号m(m=2*8=4*4)
已经找到一个数(2)能被16整除后,就不用再找另一个因数(8)了