您的位置:

c语言逆素数,素数c语言程序编写

本文目录一览:

C语言求四位可逆素数

#include "stdio.h"

int prime(int n){//素数判断

int i;

if(!(n1))

return 0;

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

if(!(n%i))

return 0;

return 1;

}

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

int n,k;

for(k=0,n=1001;n10000;n+=2)

if(prime(n)  prime(n/1000+n/100%10*10+n/10%10*10+n%10*10))

printf(++k%10 ? "%5d" : "%5d\n",n);

if(k%10)

printf("\n");

return 0;

}

运行结果:

c语言可逆素数

#includestdio.h

int isPrimenum(int n)

{

int i;

int flag=0;

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

if(n%i==0)

{

flag=1;

break;

}

if(flag==1)

return 1;

else

return 0;

}

int rever(int n)

{

int temp=0,m=0;

do{

temp=temp*10+n%10;

n/=10;

}while(n);

printf("temp=%d\n",temp);

m=isPrimenum(temp);

if(!m)

return 0;

else

return 1;

}

int main()

{

int n=0,d=0,m=0;

printf("input n:");

scanf("%d",n);

d=isPrimenum(n);

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

    m=rever(n);

if(!d!m)

printf("%d is reverprimenum\n",n);

else

printf("不是\n");

return 0;

}

求教C语言大神【可逆素数的判断】

#includestdio.h

#includemath.h

main()

{

int i,k,m,b=0;

scanf("%d",i);

if(i==1)

{

printf("no\n");/* 判断1不是素数 */

return;

}

k=sqrt(i);

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

if(i%m==0){

printf("no\n");/* i不是素数,输出no */

return;

}

if(m*mi) /* i是素数 */

{

while (i!=0)

{

b=b*10+i%10;

i=i/10;

}

k=sqrt(b);

/* 求i的可逆 */

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

if(b%m==0){

printf("no\n");/* i的可逆不是素数,no */

return;

}

if(m*mb)

printf("yes\n");/* i的可逆也是素数,yes */

}

}

尽量按照原有的风格来改。主要是多添加了几个return,还有改了2处if(i*im)改为if(m*mi)。第一个else如果不加{}则只对else后面一行有效。我加了return后,干脆去掉第一个else。

问:不加return有什么错误?

答:判断为"no"后,不一定m*m不一定就大于i。

全部都在main中搞定,不太好,好的风格应该有缩进,并且科学地分多个函数来实现,就像zls4r那样。