#include<stdio.h> #include<math.h> #define N 50 int main() { int i,k,j=0,a[N]; for(k=2;k<21;k++) { for(i=2;j<=sqrt(k);i++) if(k%i==0) break; if(i>sqrt(k)) { a[k++]=i; } } for(k=0;k<j;k++) printf("%d",a[k]); return 0; }补全程序
时间: 2023-12-24 13:05:23 浏览: 88
#include<stdio.h>
补全程序如下:
```c
#include<stdio.h>
#include<math.h>
#define N 50
int main() {
int i,k,j=0,a[N];
for(k=2;k<21;k++) {
for(i=2;i<=sqrt(k);i++) // 小于等于 sqrt(k)
if(k%i==0)
break;
if(i>sqrt(k)) { // 如果k是质数
a[j++]=k; // 将k加入数组a中
}
}
for(k=0;k<j;k++)
printf("%d ",a[k]);
return 0;
}
```
程序的功能是找出2到20之间的所有质数,并将它们存储在数组a中,最后将数组a中的元素输出。程序中使用了两个循环。外层循环从2到20遍历每个数,内层循环判断当前数是否是质数。如果是质数,则将它存储在数组a中,并将数组下标j加1。最后输出数组a中的元素即为2到20之间的所有质数。注意,判断质数时,内层循环要遍历2到sqrt(k)之间的所有数,可以减少循环次数,提高程序效率。
阅读全文