c语言质数判断函数 c语言中如何判断质数

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语言中如何判断一个数是否是质数?

判断一个数是否是质数在于看这个数字是否只能被1和它本身所整除的整数。但是有一个例外,1不属于质数。

c语言中的质数:

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

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

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,这时候就只需要打印一个约数即可。

第二,我们怎样知道一个数数素数呢?

如果num是素数,程序流程永远也进不了if语句中。为了解决这个问题,可以在循环外设置一个变量为某一值,比方说1,在if语句中将这个变量重设为0。那么,循环完成后,可以检查该变量是否仍然是1。如果是,则从没进入过if语句,这个数是素数。我这里用int类型的变量isPrime来当作一个标志实现这个想法。

好了,结合上面的所有想法,我们开始写代码了:

#includestdio.h

int main(void)

unsigned long num;// 要检查的数

unsigned long div;// 可能的约数

int isPrime;// 素数的标志,1代表是素数,0代表不是素数

printf("Please enter an integer for analysis. ");

printf("Enter q to quit.\n");

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

for(div = 2, isPrime = 1;(div * div) = num; div++){

if(num % div == 0){// 如果能被div整除

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);

// 将isPrime设置为0,表示其不是一个素数

isPrime = 0;

if(isPrime == 1){

printf("%lu 是素数.\n", num);

printf("Please enter another integer for analysis. ");

printf("Enter q to quit.\n");

printf("Bye.\n");

return 0;

这里有一个关键就是,在for循环控制表达式中使用了逗号运算符,以针对每个新输入的数将isPrime初始化为1。

C语言函数判断素数

#include stdio.h

#include math.h

int jugde(int x)

{

int i;

if(x  2)

return 0;

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

if(x%i == 0)

return 0;

return 1;

}

int main()

{

int i;

for(i = 101; i  1000; i+=2)

if(jugde(i) == 1)

printf("%d ", i);

return 0;

}

C语言输入一个整数,判断是否是质数?

#includestdio.h//头文件

int main()//主函数

{

int number,i;//定义变量

printf("请随机输入一个数:");//提示语句

scanf("%d",number);//键盘输入需要判断的数

for(i=2;i=number-1;i++)//循环从2开始,到这个数的掐前一个数为止

{

if(number%i==0)//如果取余结果为0

break;

}

if(inumber)

{

printf("%d不是素数",number);

}

else

{

printf("%d是素数",number);

}

return 0; //函数返回值为0

}

编写一个C语言程序判断一个数是否是素数

目的:判断一个数是否为素数

# include stdio.h

int main(void)

{

int m;

int i;

scanf("%d",m);

for(i = 2; i  m; i++)     //2到(m-1)的数去除m

{

if(m% i == 0)       // 判断能否整除

break;

}

if (i == m)

printf("YES!\n");

else

printf("No!\n");

}

for循环的功能:

①若能整除,通过break跳出函数;

②若一直到m-1都不能整除,此时i再自增1到m,不满足i  m跳出for循环,这时i = m。

扩展资料:

素数定理:

1、在一个大于1的数a和它的2倍之间(即区间(a, 2a]中)必存在至少一个素数。

2、存在任意长度的素数等差数列。

3、一个偶数可以写成两个合数之和,其中每一个合数都最多只有9个质因数。(挪威数学家布朗,1920年)。

4、一个偶数必定可以写成一个质数加上一个合成数,其中合数的因子个数有上界。(瑞尼,1948年)。

5、一个偶数必定可以写成一个质数加上一个最多由5个因子所组成的合成数。后来,有人简称这结果为 (1 + 5)(中国潘承洞,1968年)。

6、一个充分大偶数必定可以写成一个素数加上一个最多由2个质因子所组成的合成数。简称为 (1 + 2)。

参考资料来源:百度百科-质数

C语言编程:判断某数是否是质数

#includestdio.h

#include

math.h//包含sqrt函数

int

prime(int

m);

main(){

int

m;

scanf("%d",m);

if(prime(m))

printf("%d是质数",m);

else

printf("%d不是质数",m);

}

int

prime(int

m){

int

i,n=sqrt(m);

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

{

if(m%i==0)return

0;//如果整除,终止循环,返回0

}

return

1;

}


标题名称:c语言质数判断函数 c语言中如何判断质数
URL网址:http://ybzwz.com/article/dododoo.html