题目
用C语言如何判断素数
提问时间:2020-10-31
答案
所谓素数是指除了1和它本身以外,不能被任何整数整除的数,例如17就是素数,因为它不能被2~16的任一整数整除.因此判断一个整数m是否是素数,只需把m被2~m-1之间的每一个整数去除,如果都不能被整除,那么m就是一个素数
另外判断方法还可以简化.m不必呗2~m-1之间的每一个整数去除,只需被2~√m之间的每一个整数去除就可以了.如果m不能被2~√m间任一整数整除,m必定是素数.例如判别17是是否为素数,只需使17被2~4之间的每一个整数去除,由于都不能整除,可以判定17是素数.(原因:因为如果m能被2~m-1之间任一整数整除,其二个因子必定有一个小于或等于√m,另一个大于或等于√m.例如16能被2,4,8整除,16=2*8,2小于4,8大于4,16=4*4,4=√16,因此只需判定在2~4之间有无因子即可)
#include
#include
void main()
{
int m,i,k;
printf("请输入一个整数:");
scanf("%d",&m);
k=(int)sqrt(m);
for(i=2;ik)
printf("%d 是素数. ",m);
else
printf("%d 不是素数. ",m);
}
另外判断方法还可以简化.m不必呗2~m-1之间的每一个整数去除,只需被2~√m之间的每一个整数去除就可以了.如果m不能被2~√m间任一整数整除,m必定是素数.例如判别17是是否为素数,只需使17被2~4之间的每一个整数去除,由于都不能整除,可以判定17是素数.(原因:因为如果m能被2~m-1之间任一整数整除,其二个因子必定有一个小于或等于√m,另一个大于或等于√m.例如16能被2,4,8整除,16=2*8,2小于4,8大于4,16=4*4,4=√16,因此只需判定在2~4之间有无因子即可)
#include
#include
void main()
{
int m,i,k;
printf("请输入一个整数:");
scanf("%d",&m);
k=(int)sqrt(m);
for(i=2;ik)
printf("%d 是素数. ",m);
else
printf("%d 不是素数. ",m);
}
举一反三
已知函数f(x)=x,g(x)=alnx,a∈R.若曲线y=f(x)与曲线y=g(x)相交,且在交点处有相同的切线,求a的值和该切线方程.
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
奥巴马演讲不用看稿子.为什么中国领导演讲要看?
想找英语初三上学期的首字母填空练习……
英语翻译
最新试题
- 1下列与太阳辐射无关的是?
- 2用一根铁丝可以围成一个宽比长的一半少6cm的长方形也可以围成一个边长比宽多18cm的正方形.补充里
- 312分之5加上( )等于17分之11加上( )
- 4a+2b=4 a+2c=8 a=a=+b
- 5某地高度每增加100米,气温下降0.5度,山顶,山脚,同时测得山顶气温—2.4度,山脚气温-0.9度,山有多高、
- 6勇气号成功登陆火星?
- 7某电器经营业主计划购进一批同种型号的挂式空调和电风扇,空调每台1800元,电风扇
- 8初中化学常见离子符号
- 9已知 2009+√13 与2009-√13的小数部分是a和b,求代数式 ab-3a+4b+8的值
- 10这个一元二次不等式怎么解:X得平方+3X+10>0
热门考点
- 1求解一道方程.很简单!(3+5)X=5(X+15)
- 2(1+1/1*3)(1+1/2*4)(1+1/3*5)……(1+1/9*11)找规律
- 3做数学题速度很慢,怎么办?心算能力很差,连十位以内的加减发都要纠结
- 4Young peeple usually have more___(energetic)than the old
- 5抗震救灾时小华捐180元,小丽捐的钱比小华捐有少五分之一.
- 6185平方铝芯电缆能承受多大电流?(100米)
- 7罗马帝国现在是现在哪些国家?
- 8向竖直放置的下端扎有橡皮膜的玻璃管内倒一些水,橡皮膜就会向外凸出,使玻璃管从竖直位置逐渐倾斜,
- 9关于Al(OH)3+NaOH=NaAlO2+2H2O
- 10﹣81÷2又4分之1-﹙﹣4分之9﹚÷﹙﹣16﹚