判断质数c语言编程题(判断质数c++语言程序)

http://www.itjxue.com  2023-03-04 14:43  来源:未知  点击次数: 

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语言输入一个整数,判断是否是质数?

#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语言判断质数

#includestdio.h

#include math.h

void main()

{ int zhi(int);

int j=0,b[20]={1,3,7,9},a[20]={2,3,5,7},c,l=4,d[20],n,g=0,h=0,i,N,s=10,z,f;

scanf("%d",N);

for(i=1;i=N-1;i++)

{

for(j=0;jl;j++)

{

n=a[j]*s;

f=n;

for(h=0;h4;h++)

{ n=n+b[h];

c=zhi(n);

if(c==1)

d[++g]=n;

n=f;

}

}

for(j=0;jg;j++)

a[j]=d[j+1];

l=g,z=g,g=0;

}

if(N==1)

printf("2\n3\n5\n7\n");

else

for(j=1;j=z;j++)

printf("%d\n",d[j]);

}

int zhi(int m)

{ int k,i,c=0;

k=(int)sqrt(m);

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

if(m%i==0)break;

if(ik) c=1;

return c;

}

C语言编程题 判断质数

#include stdio.h

#include stdlib.h

int main()

{

int a;

int n=0;

scanf("%d",a);

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

{

if(a%i == 0)

{

printf("No\n");

n = 1;

break;

}

}

if(n != 1)

printf("Yes\n");

return 0;

}

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

#includestdio.h

int main(int argc,int argv[]){

int a,flag;

scanf("%d",a);/*输入一个数进行判断是否是质数*/

int isprime(int);/*这里是对将要调用的函数声明一下*/

flag=isprime(int);

if(flag==1) printf("%d is isprime",a);

printf("%d is not isprime",a):

return 1;/*这里的语句代表调用函数成功*/

}

int isprime(int a){ /*功能函数,判断是否是素数*/

int i;

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

if(a%i==0) return 0;/*只要有一次相除为0,马上就能判断不是素数*/

return 1;/*否则经过循环之后,都没有相除为0呢,就说明一定是素数了*/

}

看到这里是不是有点疑惑了呢?我到百度查了一下,质数也称素数,你注意看就好。。不懂再追问。。

不过我想你看完之后你应该能明的了,我已经写得好详细了啦。。。。

(责任编辑:IT教学网)

更多

推荐其他WEB语言文章