C语言输出100-200的素数个数,还有全部素数。

#include <stdio.h>
#include <math.h>
void main()
{

int i,j,n=0;
for(i=100;i<=200;i++)
{
for(j=2;j<=sqrt(i);j++)
if(i%j==0)
break;
if(j>sqrt(i))
{

printf("%d ",i);
n=n+1;
}

printf("%d",n);

}
}
我是新手,能帮我看看错哪吗?还有怎么输出素数个数??

在你的代码基础上进行了微调,希望对你有帮助
#include <math.h>
#include <stdio.h>
int main()
{

int i,j,n=0;
for(i=100;i<=200;i++)
{
int num=(int)sqrt(i); //定义一个num减少sqrt的运行次数,提高效率
for(j=2;j<=num;j++)
if(i%j==0)
break;
if(j>num)
{
printf("%d ",i);
n=n+1; //素数个数加1个
}
}
printf("\n%d\n",n); //输出素数个数
return 0;
}追问

要是先输出素数个数呢?

追答

要么采用数组,要么采用递归!
先输出个数,需要先统计出个数,所以必须得到这个数才能输出!
当然你也可以跑两遍你的代码,第一次只统计个数,第二次输出每个素数!(如果你是初学者,还没有学到数组和递归方法,可以使用这种方式)

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-10-25

/*

 101 103 107 109 113 127 131 137 139 149

 151 157 163 167 173 179 181 191 193 197

 199

共有21个素数

Press any key to continue

*/

#include <stdio.h> 
#include <math.h> 

int main() {
int i,j,flag,cnt = 0; 
    for(i = 100;i <= 200;i++) {
flag = 1;
for(j = 2;j <= sqrt(i);j++)
if(i%j == 0) {
flag = 0;
break;
}
if(flag) {
if(cnt && cnt%10 == 0) printf("\n");
printf("%4d",i);
++cnt;
}
}
printf("\n共有%d个素数\n",cnt);
return 0;
}

第2个回答  2020-05-09
#include"stdio.h"
#include"math.h"
void
main()
{
int
m,i,k,n=0;
for(m=101;m<=200;m=m+2)
{
k=sqrt(m);
for(i=2;i<=k;i++)
{
if(m%i==0)
break;
}
if(i>=k+1)
//应该是for循环判读是否被2到k整除完成后再输出.
{
printf("%d\t",m);
n=n+1;
}
if(n%10==0)printf("\n");
}
getch();
}
第3个回答  2013-10-25
#include <stdio.h>

int main(void)
{
        int i, j;
        int n = 0;

        for (i = 100; i <= 200; i++) {
                for (j = 2; j * j <= i; j++) {
                        if (i % j == 0)
                                break;
                }   
                if (j * j > i) {
                        printf("%d  ", i); 
                        n++;
                }   
        }   
        printf("\ntotal %d primes\n", n); 
        return 0;
}

第4个回答  2013-10-25
#include <stdio.h>

int main()

{

    int n,count,sum=0;

    int i;

    
    for(n=101; n<=200; n++)

    {

        count=0;            //每次都需要初始化count

        for(i=2; i<n; i++)

        {

            if(n%i==0)

                count++;

        }

        if(count ==0)
        {
            printf("%d\n",n);

            sum++; 
        } 
    }

    printf("共有%d个素数\n",sum);
    return 0;

}

追问

那要是先输出个数腻??

追答

那就把素数结果先保存到一个数组里,先输出了个数,再输出素数。

int main()
{
    int n,count,sum=0;
    int i,t=0,arr[100];
     
    for(n=101; n<=200; n++)
    {
        arr[t]=0;
        count=0;            //每次都需要初始化count
        for(i=2; i<n; i++)
        {
            if(n%i==0)
                count++;
        }
        if(count ==0)
        {
            arr[t]=n;
            sum++; 
         } 
        t++; 
    }
    printf("共有%d个素数\n",sum);

    for(t=0; t<100; t++)
   { 
      if(arr[t]!=0)
         printf("%d\n",arr[t]);   
   }   
    return 0;
}

C语言输出100-200的素数个数,还有全部素数。
for(i=100;i<=200;i++){ int num=(int)sqrt(i); \/\/定义一个num减少sqrt的运行次数,提高效率 for(j=2;j<=num;j++)if(i%j==0)break;if(j>num){ printf("%d ",i);n=n+1; \/\/素数个数加1个 } } printf("\\n%d\\n",n); \/\/输出素数个数 return 0;} ...

题目:求100-200之间有多少个素数,并输出所有素数。用C语言编程
int main(){ int i;int j;int num =0;for(i =100;i<=200;i++){ for(j = 2;j=i){ printf(" %d",i);num++;} } printf("\\n num=%d",num);getchar();return 0;}

C语言求100-200的全部素数怎么写
main(){ int i,j,k;for(i = 100;i<=200;i++){ k = 1;for(j=2;j<=i\/2;j++){ if(i%j==0){ k = 0; break; } } if(k == 1){ printf("%4d",i);} } 质数就是只能被1及其本身整除的数,这里用双层循环,上层循环控制被除数,下层循环控制除数,下层除2,主要为了减...

用c语言求100到200之间的全部素数
include <stdio.h>#include <math.h>int main(void){ int staNum=100,endNum=200,sum=0; int i,j,end; for(i=staNum;i<=endNum;i++) { end = sqrt(i); for(j=2;j<=end;j++) if(i%j==0) break; if(j==end+1) sum+=i; } printf("the sum is %d ....

c语言问题 输出100到200之间的素数。
include <stdio.h> include <math.h> int main(){ int i,j,flag;for(i=100;i<200;i++){ for(j=2,flag=1;j<=sqrt(i);j++) \/\/如果在2~根号i之间除不尽的话就是素数 { if(i%j==0){ flag=0;break;} } if(flag) \/\/检查是否素数 printf("%d是素数\\n",i);} return...

C语言计算100到200之间的素数并输出
is=true;for(int i =100;i<=200;i++)\/\/让I从100循环到200{for(int j=2;j<sqrt(i);j++)\/\/让J从2循环到当前要判断的I的值的开根号或者I-1{if(i%j==0)\/\/逐个进行判断 假如J能被I整除 说明不是素数 修改IS值为FALSE 退出循环 如果是素数 则IS的值从头至尾都为TRUE 说明是素数{...

用C语言求100-200之间的素数
对于100至200之间的每个整数,我们可以通过逐一检验其是否为素数来找出所有的素数。以下是一个简单的C语言程序,它实现了这一功能。请注意,程序中的`is_prime`函数用于判断一个数是否为素数。```c include \/\/ 函数声明 int is_prime(int n);int main() { int n;for (n = 100; n < 200; ...

C语言,求100~200之间的素数,以5个一行的形式全部显示出来,并给出素数的...
void main(){ int isprime(int n);int n,m;for(m=100;m<=200;m++){ if(isprime(n)){ printf("%4d",m);n++;if(n%5==0) putchar('\\n');} } printf("%d\\n",n);} int isprime(int n){ int k,i;for(k=sqrt(n),i=2;i<k;i++)if(n%k==0) return 0;return 1;...

c语言,输出100到200之间所以素数,每个素数一行
include <stdio.h> int main(void){ int i,j;for (i = 100; i <= 200; i++){ for(j = 2; j <= i\/2; j++){ if (i%j == 0){ break;} } if(j > i\/2){ printf("%d \\n", i);\/\/输入素数 } } while(1){};\/\/全部素数输出完成,进入死循环 return 0;} ...

判断100-200之间有多少个数是素数,并输出这些数。 用C++6.0软件编写C语 ...
int m=0,k;printf("100~200之间的素数有:");for(int i=100;i<200;i++){ k=0;for(int j=2;j

相似回答