标题:讲解简单程序
只看楼主
周大爷打代码
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);
}
谁可以把这个程序讲解一下,自学有些东西看不懂。
此程序是判断是否为素数。
搜索更多相关主题的帖子: 讲解 include int printf number 
2018-04-12 21:50
ab1412
Rank: 7Rank: 7Rank: 7
来 自:M78星球
等 级:黑侠
威 望:4
帖 子:103
专家分:537
注 册: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时既不是素数也不是合数,这个没有考虑在内

printf("萌新一枚,请多指教");
2018-04-12 22:50
周大爷打代码
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2018-4-9
得分:0 
非常感谢,谢谢你们的认真对待。
2018-04-15 23:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-486023-1-1.html




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

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