| 网站首页 | 业界新闻 | 群组 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 139 人关注过本帖
标题:讲解简单程序
只看楼主 收藏
周大爷打代码
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2018-4-9
结帖率:100%
  问题点数:0  回复次数:2   
讲解简单程序
#include<stdio.h>
 #include<math.h>
  int main(void )
  {
  int m,i,k;
  scanf("%d",&m);
  k=sqrt( m);
  for(i=2;i<=k;i++)
  if(m%i==0) break;
  if(i>=k+1)
  printf("%d is a prime number\n",m);
  else  
  printf("%d is not a prime number\n",m);
}
谁可以把这个程序讲解一下,自学有些东西看不懂。
此程序是判断是否为素数。
2018-04-12 21:50
ab1412
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:32
专家分:122
注 册:2018-3-15
  得分:0 
程序代码:
#include<stdio.h>     //函数scanf,printf的头文件
#include<math.h>      //函数sqrt的头文件
  int main(void)
  {
      int m,i,k;
      scanf("%d",&m);   //用户对m赋值
      k=sqrt(m);       //将m的二次正平方根赋值给k
      for(i=2;i<=k;i++)  //循环,其中i为除数
      if(m%i==0) break;  //如果m能被i整除时跳出循环
      /*综上,跳出循环的情况就两种,一种是i一直循环到k都没找到数能让他被整除,即k是素数;另一种是m能被i整除,即m是合数。
      所以接下来的if语句用来判断是哪一种情况
*/
      if(i>=k+1) //当i>k+1时,也就是说从2到k都不存在数能让m被整除        
      printf("%d is a prime number\n",m);//输出这个数是素数
      else  //否则,就是说在2到K之间存在一个数能让m被整除
      printf("%d is not a prime number\n",m);//输出这个数不是素数
      return 0;
  }


顺便说一下,这个程序有点问题,首先m应该是正整数,其次m=1时既不是素数也不是合数,这个没有考虑在内
2018-04-12 22:50
周大爷打代码
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2018-4-9
  得分:0 
非常感谢,谢谢你们的认真对待。
6 天前 23:05







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.089578 second(s), 9 queries.
Copyright©2004-2018, BCCN.NET, All Rights Reserved