c语言函数质数,C语言求质数的函数

C语言计算质数

#include stdio.h

创新互联公司是一家专业提供哈密企业网站建设,专注与做网站、网站建设、H5响应式网站、小程序制作等业务。10年已为哈密众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。

static char m[8000000];

static int prime[500000];

#define MAX_N 7368787

void set(void)

{

int i,j;

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

{

if(m[i] == 1) continue;

for(j=i+i; j=MAX_N; j+=i)

m[j]=1;

}

for(i = j=0; i=MAX_N;i++)

if(m[i]==0) prime[j++]=i;

}

int main()

{

int m,n,;

while(~scanf("%d%d",m,n))

{

for(i=m;i=n;i++)

{

printf("%d",prime[i-1]);

if(i==n || (i-m)%10==9) putchar('\n');

else putchar(' ');

}

}

return 0;

}

c语言编写函数判断素数

/判断是不是素数

#includestdio.h

int prime(int a);//函数声明

int main()

{

int n,i;

scanf("%d",n);

if(prime(n)==1) //return返回值1

printf("prime");

else

printf("not prime") ;

}

int prime(int a)

{

int i;

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

if(a%i==0)

return 0;//a%i==0不成立

else

return 1;//a%i==0成立

}

扩展资料:

素数的算法

1、素数:除了1和本身外无法被其他自然数整除的数,叫做素数,也称质数,如:2,3,5,7一系列。

2、合数:比1大但不是素数的数称为合数,如:8,9,10一系列。

3、特殊的数字:1和0既不是素数也不是合数。

4、算法:  1确定性算法   2随机性算法  3Eratosthenes算法。

求质数c语言

#include "stdafx.h"

int main(int argc, char* argv[])

{

int a=0;

int b=2;

int i=0;

int n1=0;

int n2=0;

printf("请输入所要求哪个范围的质数\n");

scanf("%d %d",n1,n2);

for(a=n1;a=n2;a++)

{

for(b=2;b=a-1;b++)

if(a%b==0) break;

if(a=b)

printf("质数: %d\n",a);

}

printf("\n");

return 0;

}

3

输入你所要求某个范围的质数,两个数用【空格键】隔开。如输入"180 200",

输出:

质数: 181

质数: 191

质数: 193

质数: 197

质数: 199

C语言中的质数

数学的概念中,素数就是只能被1和它本身所整除的整数。但是有一个例外,就是1不属于素数。所以你在输入一个整数并加以判断的时候就需要考虑这种情况了。如下即可:

while(scanf("%lu", num) == 1 num != 1)

这里用到了while循环来判断输入的数值并加以判断,如果输入格式正确的话会返回一个1并将输入的数值存入num这个变量中,然后再判断num的值是否为1。

在这里有一条很好用的规则用于素数的判断:测试的数只需要界于2到num的平方根之间的所有数,看它们是否可以整除num。如果可以整除,说明输入的数不是素数;反之,说明输入的数是素数。

到这里,就会有人说平方根怎么求,其实这个很好解决。你完全可以像下面这样描述判断条件:

for(div = 2; (div * div) = num;div++){    if(num % div == 0){        if((div * div) != num){

     printf("%lu is divisible by %lu and %lu.\n", num, div, num / div);

 }else {

     printf("%lu is divisible by %lu.\n", num, div);

 }

}

}

在这里,在if条件语句里面还嵌套了一个if条件语句,用来判断两个约数是否是一样的,比如144,约数是12和12,这时候就只需要打印一个约数即可。

C语言求质数

红框里的代码,加上那个i++的for循环,其逻辑是:

从2开始,遍历所有小于n的整数,

只要存在一个整数可以被n整除(即余数为0),则可判断n为合数.

若从2到n-1范围内,不存在可整除n的数,则判断n为质数.

还有 for(int .......)这种定义变量的写法,要C99才支持,现在很多编译器默认C89标准,或者不支持C99标准,这样写容易出错.

第一个for循环里面,直接把n=0,1,2的情况跳过了.既然这样,变量n直接把初值赋为3不就好了,赋值0干嘛.

第二个for循环里面,判断到isqrt(n)就可以了,还有更简单的求质数算法,感兴趣可以百度.

C语言的判断质数函数

这是我以前写过的判断质数的程序,希望对你有帮助。

#includestdio.h

int

prime(int

a)

{

int

i;

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

{

if(a%i==0)

break;

}

if(ia/2)

return

1;

else

return

0;

}

int

main(void)

{

int

x;

printf("请输入一个整数:");

scanf("%d",x);

if(prime(x))

printf("%d为素数\n",x);

else

printf("%d不是素数\n",x);

}

主要是加了break


新闻名称:c语言函数质数,C语言求质数的函数
文章来源:http://ybzwz.com/article/dseepoh.html