189 8069 5689

函数调用c语言,素数 c++素数函数

c语言 调用函数求m与n之间素数的个数

int prime(int a)

专注于为中小企业提供网站制作、网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业沿河免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了成百上千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

里面

if(a(n-m)/2) return 0;

改成

if(i(n-m)/2) return 0;

其实判断素数可以有更好的算法,不过按照楼主思路 最简单的改法就这样了

如果想优化再追问

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语言 函数 数组 素数

编写一个函数实现判断一个整数是否是素数。如果输出也在函数内进行,才需要把数组传到函数中,否则只要传数组元素就可以了。

你原来的程序问题在于:

1. 缺少#include"math.h"。因为用到了sqrt();

2. if(ss(a[i])==1)语句中调用函数ss的格式与定义不符:a[i]不能传给a,且缺第二的参数。

3.  判断素数时,没有考虑对数字1的处理。

输出在主程序中进行的话,参考White_MouseYBZ网友的回答,进行修改即可。

如果打印也在函数中进行,原程序可改为:

#include"stdio.h"

#include"math.h"  //增加

main()

{

int a[10],n,i;

void ss(int a[],int n);

scanf("%d",n);

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

scanf("%d",a[i]);

ss(a,n);//调用函数,判断并输出

/×  for(i=0;in;i++)     //整体删除

if(ss(a[i])==1)

printf("%d\n";a[i]); ×/ 

}

void ss(int a[],int n)  //无需返回值,改成void

{ int k,i,j,result;

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

{ if(a[i]!=1)    //避免1判断为素数

{ k=sqrt(a[i]);

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

if(a[i]%j==0) break;

if(jk)  printf("%d ",a[i]); //输出素数

}

}

}

c语言中调用函数来判断素数,当是素数时返回1,否则返回0.为什么最后return1放在循环里输出的都不是素数

这是由“判断素数”的算法性质决定的。判断素数X实行的是“一票否决”,即只要除1和它自身之外的整数,有任何一个能够整除X,X就不是一个素数。

循环内部只能判断一个数,不能判断范围内的全部(除非已是最后一个数判断结束,但这种情况一般都是放到循环外部判断的)。

C语言用函数调用求四位数的超级素数

VC++6.0下调试可用

/*

一个素数,依次从最高位去掉一位,两位……若得到的都是素数,且各数字不为0,则称为超级素数。

*/

#include "stdio.h"

#include "math.h"

int prime(int i)

{/*判断是否为素数*/

int j;

if(i==1) return 0;

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

if(i%j==0) return 0;

return 1;

}

int IsSuperPrime(int i)

{/*判断此数是否为超级素数函数*/

if(prime(i)==1)

{

do{

i=i/10;

if(prime(i)==0) return 0;

}while(i=10);

return 1;

}

return 0;

}

void main()

{

int spn=0,num;

long sps=0;//所有4位数的超级素数的总和

for (num=1000;num10000;num++)

if(IsSuperPrime(num))

{

printf("%6d",num);

if(++spn%4==0)printf("\n");//每输出4个超级素数输出一个换行

sps+=num;

}

printf("\nsum=%ld,Total=%d\n",sps,spn);

}

c 语言 题 在线求 用函数调用 任意输入一个整数,判断该数是不是素数

#include stdio.h

int main( int argc , char **argv)

{

int i, m;

printf("Input a number: "); /* 输入提示 */

scanf("%d", m);

if(m0)

{

printf("请重新输入正确的数:");

scanf("%d", m);

}

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

if(m % i == 0)

{

printf("该数不是素数");

break; /* 若m能被某个i整除,则m不是素数,输出“该数不是素数”,提前结束循环 */

}

if(i sqrt(m )/*如果循环正常结束,说明m不能被任何一个i整除,则m是素数 */

printf("该数是素数,其值为:%d \n", m);

return 0;

}


当前文章:函数调用c语言,素数 c++素数函数
转载源于:http://cdxtjz.cn/article/dooipji.html

其他资讯