c语言判断可逆函数题 c语言判断可逆素数

用c语言编写一个判断某数是否为可逆素数的函数。

#includestdio.h

创新互联公司是一家集网站建设,淇滨企业网站建设,淇滨品牌网站建设,网站定制,淇滨网站建设报价,网络营销,网络优化,淇滨网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

// 可逆素数就是该数及其反数均为素数

int IsPrime(int i);

int GetFanShu(int n);

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

{

int m, n;

do

{

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

scanf("%d", m);

}while(m2);

n = GetFanShu(m);

if( IsPrime(m) IsPrime(n) )

printf("数字%d为可逆素数!\n", m);

else

printf("数字%d不是可逆素数!\n", m);

return 0;

}

int IsPrime(int iNum)

{

int k;

for(k=2; kiNum/2; k++)

{

if( iNum%k==0 )

return 0;

}

//printf("数字%d为素数!\n", iNum);

return 1;

}

int GetFanShu(int iNum)

{

int i=0, tmp=iNum;

while(iNum0)

{

i = i*10 + iNum%10;

iNum = iNum/10;

}

//printf("自然数%d的反序数为:%d\n", tmp, i);

return i;

}

初学求四位可逆素数的c语言 有什么错误 ??

偶数不是素数,所以只判断4位奇数;最高位是偶数的也不是所求之数,故跳过。然后判断是否为回文数,是的再判断是否为素数;是的话输出这个素数。提供以下参考代码:

//#include "stdafx.h"//If the vc++6.0, with this line.

#include "stdio.h"

int main(void){

int i,j,k,f=0;

for(i=1001;i10000;i+=2){//偶数不是素数,不参与

if((i/10001)==0) i+=1000;//最高位是偶数的不是所求之数,跳过

if(i/1000==i%10  i/100%10==i/10%10){//是回文数的再判是否为素数

for(j=3;(k=j*j)=i;j+=2)//判断素数

if(i%j==0) break;

if(ki)printf("%d ",f=i);//输出回文素数

}

}

printf(f ? "\n" : "There is no such a prime number.\n");

return 0;

}

C语言题目,急!!

思路:

首先你要确定这个函数要处理的素数的最大位数有几位,因为素数是有无穷多的!

程序流程:

1.例如你要处理一个最大不超过5位数的素数,第一步就算要将这个素数从最大位数取余数,然后到第二3.4.5.把输入的数字,拆分成几个数字,并分别把他们存到一个变量里面,这里有一点需要注意,如果素数位数只有2位或者3位,其他的变量请对他们赋一个特殊的值,例如-1什么的方便后面的处理

2.然后用排列组合的规则对这5个变量排序并用一个数组记录每次排序后的数字。

3.就是对上面的数组的每一个量进行求最大公约数处理,网上很多源代码的直接下就行了。如果最大公约数是这个变量里面的数本身,那么这个数就是素数如果不是就继续测试下一个数,否则返回一个值,代理这个数不是自己想要的数 调用函数输出no!

c语言编程求给定区间内所有可逆素数

代码写得较乱,以下给出结构较清晰的同功能代码,供对照查错:

#include stdio.h

#include stdlib.h

//判断给定值是否为素数

int isPrime( int num )

{

int v;

for( v=2; v=(num/2); v++ )

{

if( num % v == 0 ) return 0;

}

return 1;

}

//反转给定值

int numReverse( int num )

{

int i, val=0;

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

{

val *= 10;

val += (num % 10);

num /= 10;

}

return val;

}

#define MAX(a,b) ((a)(b)?(a):(b))

int main( int argc, char ** argv )

{

int i, r, sv, ev, cnt=0;

do {

printf( "Please input two integers: " );

scanf( "%d %d", sv, ev );

} while( (sv = ev) ); //此处保证数值区间距离非零非负

sv = MAX(sv,2); //此处保证跳过非合数非素数的数值1

for( i=sv; i=ev; i++ )

{

if( i9 ) //此处保证忽略测试小于10的值

{

r = numReverse( i );

//若两数均为素数且两数不相等

if( isPrime( i ) isPrime( r ) (i!=r) )

{

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

cnt++;

}

}

}

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

return 0;

}


当前文章:c语言判断可逆函数题 c语言判断可逆素数
文章位置:http://scyanting.com/article/dddsecg.html