搜索
首页 电脑/网络 程序设计 C/C++

判断是否是素数

  这个程序有一个问题不太明白,请大家帮忙解决一下,尽量详细点,谢谢!程序如下: #include #incldue void main() { int m,i,k; scanf("%d",&m); k=sqrt(m); for(i=2;ik)printf("%d is a prime number\n",m); else printf("%d is not a prime number\n",m);}问题1 for(i=2;i<=k;i++) if(m%i==0)break;i为什么等于2? i为什么要小于等于k?问题2 判断下面这些数是不是素数1、3、19、21、39、92分别写出。
  

全部回答

2008-02-13

1 0
    问题1: for(i=2;i<=k;i++) if(m%i==0)break; i为什么等于2? i为什么要小于等于k? 回答:素数(质数)是只能被1和本身所整除的数,1不必说,所有的整数都能被1整除,那么判断整除的时候当然从2开始了。
   k的值是sqrt(m)开平方根,所以判断一个数是不是素数,只要用这个数m去除以从2开始,一直到k的每一个数,如果都不能被整除,就说明这个数m是素数。   问题2:判断下面这些数是不是素数 1、3、19、21、39、92 回答:首先明白什么是素数的概念,就好判断了。
  在写代码时,有一个简单的处理逻辑,就是除了1和本身,偶数和奇数的倍数的整数都不是奇数。 1、3、19显然是质数,只能被1和本身整除。   21、39、92不是质数,21能被3、7整除;39能被3,13整除;92能被2、4、23整除。
   。

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
C/C++
硬件
电脑装机
程序设计
互联网
操作系统/系统故障
笔记本电脑
反病毒
百度
软件
程序设计
C/C++
VB
数据库
汇编语言
JAVA相关
VC++
C#/.NET
其他编程语言
C/C++
C/C++
举报
举报原因(必选):
取消确定举报