您的位置:

c语言数组输出1到100的素数,c语言1到1000的素数

本文目录一览:

编辑程序实现,将1~100存放在数组中,并求100之内的素数并输出,C语言?

#include stdio.h

int main()

int i,j,a[100];

for(i=0;i100;i++)

a[i]=i+1;

for(i=1;i100;i++)

{

for(j=2;ja[i];j++)

if(a[i]%j==0) break;

if(j=a[i]) printf("%d ",a[i]);

}

return 0;

}

c语言程序中怎样输出1到100的素数

主要考察素数的概念和判断方法。

素数:指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。

素数判断:将该数N用小于等于根号N的所有素数去试除,若均无法整除,N则为素数。

参考代码:

#includestdio.h

#includemath.h

int main()

{

    int a,b,c;

    printf("2\n");//2是素数,不能利用上面的规则求出需要另外输出。

    for(a=2;a=100;a++)

    {

        c = (int)sqrt(a);//计算平方数,取整

        for(b=2;b=c;b++)//依次判断

            if(a%b==0) break;

        if(bc) printf("%d\n",a);//输出素数

    }

    return 0;

}

用C语言编写在自然数中输出100以内的素数?

#includestdio.h

//输出100之内的所有素数

int main()

{

int i;

int j;

int flag = 1;

for(i = 2;i = 100;i++)

{

for(j = 2;j = i / 2;j++)

{

if(i % j ==0)

{

flag = 0;

break;

}

}

if(flag == 1)

{

printf("%d\n",i);

}

flag = 1;

}

return 0;

}

扩展资料

#include stdio.h

int main()

{

int a;

for (int i = 2; i 100; i++)

{

int a = 0;

/* code */

for (int j = 2; j i; j++)

{

/* code */

if (i % j == 0)

{

/* code */

a++;

}

}

if (a == 0)

{

/* code */

printf("%d is sushu\n", i);

}

else

{

/* code */

printf("%d is not sushu\n", i);

}

}

return 0;

}

c语言输出1-100素数

不能只看程序,还得看数学定义, 素数是从2开始,1不必计算。

    for (m=2;m=100;m++) {

      if (m==2 || m==3) { //2比较特殊,是素数,如果用sqrt()来减少判断次数的话,3放在这里

        printf("%d\n", m);

        continue;

      }

      if (m%2==0) continue; //只要是偶数,都不是素数

      k = sqrt(m);

      for (i=2;i=k;i++) {

        if (m%i==0) {

          break;

        }

      }

      if (i==(k+1)) //改为k+1

        printf("%d\n", m);

    }

    这样应该就对了。

用c语言编写程序输出1-100内的素数

用常规的判素性方法可如下实现

#include "stdio.h"

#include "math.h"

bool IsPrime(int x)

{

int i, s;

s = sqrt(x + 1);

for(i = 2; i = s; i++)

if(x % i == 0) return false;

return true;

}

void main( )

{

int i;

for(i = 2; i 100; i++)

if(IsPrime(i))

printf("%d ", i);

}

也可采用筛选法,筛选法效率会高一些,楼上的虽然也是筛选法,但他的效率却并不高。筛选法的思路是将那些非素数筛掉,留下那些素数。命题“对于1x100的合数x, 必含有小于10的质因子”可以证明是真命题,它的逆反命题“对于1x100的数,如果不含有小于10的质因子,则它必为素数。”则也是真命题。因此筛除时,只要筛除含有10以内的质因子的数就可以了。下面给出筛选法的代码。

#include "stdio.h"

void main( )

{

bool isprime[100];

int i, j;

isprime[0] = false;

isprime[1] = false;

for(i = 2; i 100; i++) /*先初始化2~100的都是素数,然后将非素数筛除掉*/

isprime[i] = true;

for(i = 2; i 10; i++) /*将所有含有小于10的质因子的数筛除掉*/

{

if(isprime[i]) /*如果i是素数,则将它的倍数全部筛掉*/

for(j = i * i; j 100; j += i) /*从i*i开始检测是因为小于i*i的合数都被小于i的素数筛除了*/

isprime[j] = false;

}

for(i = 2; i 100; i++)

if(isprime[i])

printf("%d ", i);

}

用c语言:输出在1~100内的所有素数

#includestdio.h

#includemath.h

intmain()

{

intn;

inti;

intflag=0;

for(n=2;n=100;n++)

{

flag=0;

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

{

if(n%i==0)

{

flag=1;

break;

}

}

if(flag==0)

printf("%d",n);

}

return0;

}

扩展资料

C语言判断素数

#includestdio.h

intmain()

{

inti,j;

intm,n,p;

for(i=11;i1000;i++)

{

if(i=11i=99)

{

m=i%10;

n=i/10;

}

else

{

m=i/100;

n=i%10;

}

if(m==n)

{

for(j=2;ji/2;j++)

if(i%j==0)

break;

if(j=i/2)

{

printf("%d",i);

}

}

}

return0;

}