C语言学习记录
法一:用筛选法求100之内的素数,将数组中非素数置为0
int main() {
int arr[100], count = 0;
for (int i = 0;i < 100;i++) {
arr[i] = i + 1;
}
arr[0] = 0; // a[0]=1首先排除1
for (int i = 1;i < sqrt(100);i++) {
for (int j = i + 1;j < 100;j++) {
if (arr[i] != 0 && arr[j] != 0) {
if (arr[j] % arr[i] == 0) {
arr[j] = 0;
}
}
}
}
// 遍历arr[]输出素数
for (int i = 0;i < 100;i++) {
if (arr[i] != 0) {
printf("%5d", arr[i]);
count++;
}
if (count % 10 == 0) {
printf("\n");
}
}
return 0;
}
方法二:求100-200间的素数
int main() {
int i,j,flag;
for (i = 100;i <= 200;i++) {
flag = 1;
for (j = 2;j <= sqrt(i);j++) {
if (i % j == 0) {
flag = 0;
break;
}
}
if (flag) // 如果flag=1就代表为素数
printf("%d\t", i);
}
return 0;
}