大一c语言的题目。输出m-n之间所有的素数

改写( sample02_07.cpp )保存为ex02_06.cpp:输出m-n之间所有的素数,调用int isprime(int n)函数,每行输出10个素数。
sample02_07.cpp
/*求100以内的全部素数,每行输出10个。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。*/
/* 使用嵌套循环求100以内的全部素数 */
#include <stdio.h>
#include <math.h> /* 调用求平方根函数,需要包含数学库 */
int main(void)
{
int count, i, m, n;

count = 0; /* count记录素数的个数,用于控制输出格式 */
for(m = 2; m <= 100; m++){
n = sqrt(m);
for(i = 2; i <= n; i++)
if(m % i == 0) break;
if(i > n){ /* 如果m是素数 */
printf("%6d", m); /* 输出m */
count++; /* 累加已经输出的素数个数 */
if(count % 10 == 0) /* 如果count是10的倍数,换行 */
printf("\n");
}
}
printf("\n");

return 0;
}
搜索
复制

应将k=sqrt(m);删除。在a=1;的前面加上 k=sqrt(j);
附上程序:

#include <stdio.h>
#include <math.h>
void main(void)
{ int i,j,m,n,k,s,a,b=0;
    scanf("%d",&n); 
 scanf("%d",&m);
 for(j=n;j<m;j++) 
 { 
  k=sqrt(j);  //程序改进 在此行
  a=1; 
     for(i=2;i<=k;i++) 
  if(j%i==0) 
  {a=0;break;}        
  if(a==1)  
  {printf("%5d",j);b++; 
  if(b%10==0) printf("\n");} //回车问题在此行
 }
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-03-05
应将k=sqrt(m);删除。在a=1;的前面加上 k=sqrt(j);
附上程序:

123456789101112131415161718

#include <stdio.h>#include <math.h>void main(void){ int i,j,m,n,k,s,a,b=0; scanf("%d",&n); scanf("%d",&m); for(j=n;j<m;j++) { k=sqrt(j); //程序改进 在此行 a=1; for(i=2;i<=k;i++) if(j%i==0) {a=0;break;} if(a==1) {printf("%5d",j);b++; if(b%10==0) printf("\n");} //回车问题在此行 }}