案例八:判断m是否为素数案例八:判断m是否为素数
案例八:判断m是否为素数。
1(程序分析:
我们采用的算法是这样的:让m被2到m除,如果m能被2,m 之中任何一个整数整除,则提前结束循环,此时i必然小于或等于k(即m);如果m不能被2,k(即m)之间的任一整数整除,则在完成最后一次循环后,i还要加1,因此i=k+1,然后才终止循环。在循环之后判别i的值是否大于或等于k+1,若是,则表明未曾被2,k之间任一整数整除过,因此输出“是素数”。
2(程序流程图:
开 始
输入m
k=sqrt(m+1)
i=2
N
i=k+1 F Y
...
案例八:判断m是否为素数
案例八:判断m是否为素数。
1(程序
:
我们采用的算法是这样的:让m被2到m除,如果m能被2,m 之中任何一个整数整除,则提前结束循环,此时i必然小于或等于k(即m);如果m不能被2,k(即m)之间的任一整数整除,则在完成最后一次循环后,i还要加1,因此i=k+1,然后才终止循环。在循环之后判别i的值是否大于或等于k+1,若是,则表明未曾被2,k之间任一整数整除过,因此输出“是素数”。
2(程序流程图:
开 始
输入m
k=sqrt(m+1)
i=2
N
i<=k
Y
N m%i= =0
Y
i++
m%i==0
输出:m是素数 输出:m不是素数
结 束
程序流程图 3(程序N-S图:
读入m
m k=
i=2
i<=k
m%i= =0
用break结束循环
i++
i>=k+1 F Y
输出:m是素数 输出:m不是素数
程序N-S图
4(程序源代码:
#include
main()
{
int m,i,k;
scanf("%d",&m);
k=sqrt(m+1); /*加1是为了避免在求m时可能出现的误差*/
for (i=2;i<=k;i++)
if(m%i==0) break;
if(i>=k+1) printf("%d is a Prime muber\n",m);
else printf("%d is not a Prime number\n",m);
}
5(程序运行结果:
17
17 is a Prime number 6(程序扩展:求100~200间的全部素数。
本文档为【案例八:判断m是否为素数】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。