c语言自定义函数找素数,c语言寻找素数

C语言。定义一函数is(int number) 判断number是否为素数

这是我写的

成都创新互联公司专业为企业提供惠农网站建设、惠农做网站、惠农网站设计、惠农网站制作等企业网站建设、网页设计与制作、惠农企业网站模板建站服务,10年惠农做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

找出100—1000之间的所有可逆素数,要求判断素数、颠倒顺序的功能分别用自定义函数来实现。(可逆素数是指一个素数的各位数值顺序颠倒后得到的数仍为素数。例如:113、311)其中int

IsPrime(int

n)是判断素数,请参考

#

include

#include

using

namespace

std;int

IsPrime(int

n)

{

int

i;

if(n

2)

return

0;

else

if(n

==

2)

return

1;

if(n

%

2

==

0)

return

0;

for(i

=

3;

i

*

i

=

n;

i

+=

2)

if(n

%

i

==

0)

return

0;

return

1;

}

void

main()

{

char

x[4];

char

tmp[4];

for

(int

n=100;n1000;n++)

{if(

IsPrime(n))

{

sprintf(tmp,

"%d",

n);

x[2]=tmp[0];

x[1]=tmp[1];

x[0]=tmp[2];

int

val

=

atoi(x);

if

(IsPrime(val))

{

cout

评论

加载更多

C语言编写一个求素数函数1至1000之间

代码如下:

#includestdio.h

int foundit(int i) // 按照题意,定义了一个函数,判断是否素数 

{

int avg;

int k;

avg=(int)sqrt(i);

for (k=3;k=avg;k+=2)   // 直接从 3 开始,因为 i 是奇数。 

if (i % k ==0)  // 余数为0,说明不是素数 

return 0;

return 1;

}

int main()

{

int i; // 循环变量

int sushu=2; // 2是素数,直接保存下来。 

for(i=3;i1000;i+=2)    // 扫描 3 到 1000 之间的所有奇数 

{

if(foundit(i)==1)

{

if(i-sushu==2)

printf("%d 和 %d、",sushu,i);

sushu=i;

}

}

return 0;

}

运行的结果:

3和5、5和7、11和13、17和19、29和31、41和43、59和61、71和73、101和103、107和109、137和139、149和151、179和181、191和193、197和199、227和229、239和241、269和271、281和283、311和313、347和349、419和421、431和433、461和463、521和523、569和571、599和601、617和619、641和643、659和661、809和811、821和823、827和829、857和859、881和883

C语言程序设计求素数

在程序的开头加入#includemath.h

下面是fun函数:

int fun(int mm,int b[MAX])

{

int i,mmm,n=0;

for(mmm=2;mmm=mm;mmm++)

{

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

if(mmm%i==0) break;

if(isqrt(mmm))

{

b[n]=mmm;

n+=1;

}

}

return n;

}

分析:

如果mm=1,外循环不启动,直接返回n,此时n=0

如果mm=2,外循环启动,内循环i=sqrt(mmm)的条件不满足,不启动,内循环下面的判断条件满足,于是让b[n]=mmm,n+=1,即找到一个符合条件的素数,此时b[n]既b[0]=2,然后n+=1,表示符合条件的素数的个数加1

同样,当mm=3的时候,内循环由于条件不满足,是不会执行的,但是在内循环下面的条件判断都满足,所以会把结果保存在n和b[n]里面,这时,外循环要执行2次

当mm3时,内循环也会启动,但是要等内循环结束之后i的值满足条件的才是素数,程序的可靠信完全可以放心

刚刚又重新分析了一遍代码,稍微改了改,没问题了

c语言函数判断素数

楼上说的不错,判断一个数是否是素数就这么算就行。但是楼上程序写的有瑕疵,sqrt不应该写在for里面,而是在for前面赋值,因为sqrt很耗时间。

如果是求类似于1000以内有多少个素数的话,每个素数的判断方式就不是判断是否能整除从2开始到该数的开方,而是判断是否能整除从2开始到该数开方之间的素数。这样效率会高很多。

C语言,编写函数判断一个整数是否为素数,在主函数中调用该函数并输出100以内的全部素数?

#include stdio.h

int is_prime_number(int n)

{

int i;

int result = 1;

if(n==1)

 return 0;

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

{

 if(n%i==0)

 {

     result = 0;

     break;

 }

}

return result;

}

int main()

{

int n;

printf("100以内的素数包括:\n");

for(n=1;n=100;n++)

{

 if(is_prime_number(n))

 {

     printf("%d ",n);

 }

}

printf("\n");

return 0;

}


网页标题:c语言自定义函数找素数,c语言寻找素数
分享地址:http://myzitong.com/article/phphpd.html