189 8069 5689

函数素数c语言程序框图 求素数的c++语言程序

跪求C语言高手解答 输入一个数,判断其是否是素数,把结果显示出来,并画出程序流程图。

#includestdio.h

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

main()

{

int i,x;

int flag;

scanf("%d",x);

flag=0;

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

{

if(x%i==0)

{flag=1;break;}

}

if(flag==0){printf("%d是素数\n",x);}

else if(flag==1){printf("%d不是素数\n",x);}

}

程序流程图就自己画吧,这个挺简单的。

C语言,求700至800间的所有素数,画一流程图

由问题分析可知,该问题考虑用双层循环结构实现。

外层循环对start〜end之间的每个数进行迭代,逐一检查其是否为素数。外层循环的循环变量用变量m表示,m即代表当前需要进行判断的整数,显然其取值范围为start≤m≤end。

内层循环稍显复杂,完成的功能是判断当前的m是否为素数。设内循环变量为m,程序设计时i从2开始,直到为止。用i依次去除需要判定的整数m,如果m能够被中的任何一个整数所整除,则表示i必然小于或等于,则可以确定当前的整数m不是素数,因此,应提前结束该次循环。如果n不能被中的任何一个整数所整除,则在完成最后一次循环后,i还需要加1,即,之后才终止循环。此时,可以确定当前的整数m为素数。

可以使用标志位flag来监控内外循环执行的情况。在定义变量时将flag初值设为1,在内层循环中判断时,如果m能够被中的任何一个整数所整除,则在内循环中将flag设置为0。如果m不能被中的任何一个整数所整除,则在内循环中不会修改flag标志的值,退出内循环后它的值仍为1。此时在外循环中对flag的值进行判断,如果flag=0,则显然当前的m不是素数,如果flag=1,则当前的m是素数,应该将其打印出来。

还需要注意的是,在外循环中,每次要进行下一次迭代之前,要先将flag标志再次置为1。

程序流程图:

下面是完整的代码:#includestdio.h

#includemath.h

int main()

{

int start, end, i, k, m, flag=1, h=0;

do

{

printf("Input START and END:");

scanf("%d%d", start, end);

}while(!(start0 startend));

printf("......... prime table(%d-%d).........\n", start, end);

for(m=start; m=end; m++)

{

k=sqrt(m);

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

if(m%i==0)

{

flag=0;

break;

}

if(flag)

{

printf("%-4d",m);

h++;

if(h%10==0)

printf("\n");

}

flag=1;

}

printf("\nThe total is %d", h);

return 0;

}

运行结果:Input START and END:1 100

......... prime table(1-100).........

1   2   3   5   7   11  13  17  19  23

29  31  37  41  43  47  53  59  61  67

71 73 79 83 89 97

一个c语言的流程图 是关于判断素数的 看不太懂 麻烦解释一下过程

它的算法是:

输入n后,让i取值在2~n/2就循环,逐一比较看n能否被i整除;如果能被其中任何一个i的值整除,提前退出循环,否则i的值+1后继续。

当退出循环后检测,如果i的值=n/2就说明它是提前退出循环的,n不是素数;否则说明n是素数。

至于i循环的范围,最大的是直接根据素数的定义,检测2~(n-1)

稍改进一点的,因为大于n/2的肯定不能整除,就只检测2~n/2

更优一点的,是根据n如果有除1和它自身之外的其它因子,至少有一个在2~√n之间,那么 i 的循环范围就只要 2~√n 就可以了。

本人c语言入门级别,求此判断素数的程序流程图。在线等!!

// 比如我在main函数里调用fun函数求5是不是素数

void main ()

{

int flag; 

flag = fun(5);//进入函数fun,并且把值5传给fun的参数 n 

}

int fun(int n) 

{   

int i; 

// 函数运行到这进入for循环, 

// 第一次循环i=5成立,执行if(n%i==0)判断n能否被i整除,显然5不能被2整除条件不

// 成立不退出循环,i++,i的值由2变成3,继续第二次循环,判断5能否被3整除

// 不能被3整除继续循环,判断能否被4整除,不能继续循环  

// 到最后5只能被5整除,i=5退出循环   

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

if(n%i==0)

break; 

// i=5,n=5 条件成立,函数返回1,说明5是素数。

if(i==n)  

return 1;  

else     

return 0; 

}

这是一道筛法求素数的c语言流程图 有哪位大神会做啊

#includestdio.h

#includemath.h

int main()

{

int c,d,k,prime[101];

for(c=2;c=100;c=c+1)

prime[c]=0;

d=2;

do

{

k=d;

if(prime[k]==0)

{

k=k+d;

while(k=100)

{

prime[k]=1;

k=k+d;

}

}

}

while(d=sqrt(100))

for(c=2;c=100;c++)

if(prime[c]==0)

countcendl;

return 0;

}

C语言:求1-100内素数,多几种方法,最好流程图也说下。

#include "stdio.h"

int is_prime(int x)//判断是否是素数的函数,是素数,返回1,不是则返回0

{

int i;

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

if(x%i==0)

return 0;

return 1;

}

void main()

{

int i,j=0;

for(i=1;i=100;i+=2)//素数属于奇数,减少循环次数。

if(is_prime(i))

{

printf("4d%",i);

j++;

if(j%10==0j!=0)

printf("\n");//每行打印十个素数,

}

}


新闻名称:函数素数c语言程序框图 求素数的c++语言程序
文章起源:http://cdxtjz.com/article/dochphi.html

其他资讯