| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 475 人关注过本帖
标题:分解因数
只看楼主 加入收藏
卡其
Rank: 2
等 级:论坛游民
帖 子:96
专家分:36
注 册:2010-8-30
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
分解因数
程序代码:
#include
main()
{
      int several,x;
      printf("Please enter a number\n");
      scanf("%d",&several);
      for(x=2;x<=several;x++)
      {
           while(x!=several)
           {
                 if(several%x==0)
                 {
                      printf("%d\n",x);
                      several=several/x;
                 }
                 else
                 {
                      break;
                 }
           }
      }
      printf("%d",several);
      getchar();
      getchar();
}
分解质因数
为什么一定要加while语句才能正确输出呢?
我把while语句去掉输入9。输出的应该也是3  和 3  啊、为什么输出的是  9  呢?
搜索更多相关主题的帖子: several 
2012-07-13 22:27
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
比如 8 要分解成 3个 2 所以按照你程序的算法 要在for 确定的x后使用while来进行可能的多次相同质因数的分解。

梅尚程荀
马谭杨奚







                                                       
2012-07-13 22:36
卡其
Rank: 2
等 级:论坛游民
帖 子:96
专家分:36
注 册:2010-8-30
收藏
得分:0 
回复 2楼 有容就大
去掉while语句就算不能得出重复的质数。那为什么我输入9、程序直接不分解呢。直接输出9
2012-07-13 23:06
奋斗猪
Rank: 2
来 自:奋斗的途中
等 级:论坛游民
帖 子:43
专家分:91
注 册:2012-7-4
收藏
得分:0 
呵呵,学习了!原来可以这样求质数。看来while循环很重要

贵在坚持!
2012-07-13 23:11
奋斗猪
Rank: 2
来 自:奋斗的途中
等 级:论坛游民
帖 子:43
专家分:91
注 册:2012-7-4
收藏
得分:20 
回复 3楼 卡其
当你输入9时,x为时,2运行后面的break,跳出了整个循环

贵在坚持!
2012-07-13 23:14
卡其
Rank: 2
等 级:论坛游民
帖 子:96
专家分:36
注 册:2010-8-30
收藏
得分:0 
回复 5楼 奋斗猪
懂了。谢谢咯!
2012-07-13 23:32
奋斗猪
Rank: 2
来 自:奋斗的途中
等 级:论坛游民
帖 子:43
专家分:91
注 册:2012-7-4
收藏
得分:0 
回复 6楼 卡其
呵呵,客气了。加油咯,我也初学

贵在坚持!
2012-07-13 23:49
快速回复:分解因数
数据加载中...
 
   



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

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