小白求助 C语言题目 求大佬解答 希望有详细步骤

#include "stdio.h"
void main()
{
int k=0,i,n=10,f,a[5];
while (k<5){
f=1;n=n+1;
for (i=2;i<=sqrt(n);i++)
if(n%i==0){f=0;break;}
if(f==1){a[k]=n;k++;}
}
printf("%d",a[4]);
}

这道题,是寻找质数(Prime number)。
从 n+1 这个自然数开始,本题初值int n=10, 所以从n=11 找起。
一共要找5个(序号 k=0,1,2,3,4;) ,存放在 a[k]中,
循环体: {
f=1;n=n+1; -- 每次循环开始,n 增 1,标志 (flag) f=1 (假定是质数)。
如果满足这个条件: for (i=2;i<=sqrt(n);i++) if(n%i==0){f=0;break;}; n 就不是质数。
如果满足这个条件: if(f==1){a[k]=n;k++; }, n 就是质数,存放在 a[k]中,k 增1。
}
k等于5 时,while(k<5) {} 循环结束。输出第5个质数。
int k=0,i,n=10,f,a[5]; --变量声明和初始化。
另外,头文件 要加上 #include <math.h> 因为调用了 sqrt(n); 即 i 循环到 n 的平方根函数,否则,计算结果可能错!
温馨提示:答案为网友推荐,仅供参考
相似回答