| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2238 人关注过本帖
标题:有关素数的问题?
取消只看楼主 加入收藏
xfcyjhb
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:116
专家分:0
注 册:2008-2-26
收藏
 问题点数:0 回复次数:7 
有关素数的问题?
任何大于2的正整数都可以分解成几个素数的乘积,且这个分解是唯一的。
例:输入30,输出30=2*3*5
而且素数可以重复,比如:12=2*2*3
下面这个函数能够输出像30这样的分解因数是不同的素数的数,而不能输出有多个素数的乘积的数,比如12=2*2*3,8=2*2*2,不知我是否说明白了!请高手帮我看看!谢谢!


#include<stdio.h>
#include<math.h>
int isprime(int n);/*判断素数的函数*/
int fenjie(int n);/*将大于2的正整数分解的函数*/


void main()
{
int i,n;
scanf("%d",&n);fflush(stdin);
if(n<=1)  EOF;
   if  (isprime(n)!=0)
 printf("%d=1*%d\n",n,n);
   else fenjie(n);

 }

 int isprime(int n)
 {
    int j,limit;
    if(n<=1) return 0;
    if(n==2) return (n);
    if(n%2==0) return 0;
    limit=sqrt(n)+1;
    for(j=3;j<=limit;j+=2)
      if(n%j==0) return 0;
    return (n);
}
int fenjie(int n)
{  int i,k;

  k=sqrt(n)+1;
  for(i=2;i<=k;i++)
      if(isprime(i)!=0&&n%i==0)
 {
 n/=i;
 printf("i=%d\n",i);}

 if(n<i&&n%i==0)/*想从这里从新调用分解函数,关键是这里不能完成输出有重复素数乘积的数*/
      fenjie(n);
}
搜索更多相关主题的帖子: 素数 int 分解 函数 乘积 
2008-03-08 18:43
xfcyjhb
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:116
专家分:0
注 册:2008-2-26
收藏
得分:0 
怎么没人回复啊,伤心!
希望明天能看到结果,谢谢各位了!
自己还是回去再看看吧!

多C多智慧,将C进行到底.........
2008-03-08 19:16
xfcyjhb
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:116
专家分:0
注 册:2008-2-26
收藏
得分:0 
行了LS,不过输入一个数后就不能退出了,那是为什么呢?还有你能解释一下为什么你的行而我的不行.

多C多智慧,将C进行到底.........
2008-03-08 22:15
xfcyjhb
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:116
专家分:0
注 册:2008-2-26
收藏
得分:0 
平凡的解法?
为什么判断素数是多余的步骤?不判断怎么知道整除的那个是不是素数呢?
如果可以的话,请指教.
谢谢!

多C多智慧,将C进行到底.........
2008-03-08 23:34
xfcyjhb
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:116
专家分:0
注 册:2008-2-26
收藏
得分:0 
平凡的解法?
判等素数是多余的步骤。为什么呢?有更好的算法可以不判断素数吗?请指教!

多C多智慧,将C进行到底.........
2008-03-08 23:58
xfcyjhb
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:116
专家分:0
注 册:2008-2-26
收藏
得分:0 
有点不明白,为什么我的算法叫平凡的算法!并不是质问,可以回答我吗?
还有LS说的去掉素数的判断,我试了下,不行啊。
输入30有i=2
i=3
i=5
而24有
i=2
i=3
i=4这不是素数阿。

多C多智慧,将C进行到底.........
2008-03-09 13:02
xfcyjhb
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:116
专家分:0
注 册:2008-2-26
收藏
得分:0 
谢谢,我用TC3.0运行了,确实可以。一个WHILE循环就将相同素数的寻找解决了,受益匪浅啦!还有要谢谢blueboy82006的代码,以及LEECO的去掉素数判断的指导,谢谢LS iFreeBSD,我会下去看看整除基本定理的。
我想这样很好,遇到不会的时候,各位大虾们可以让我们(菜鸟级)去看一看有关实现程序算法方面的知识。
谢谢LS。

多C多智慧,将C进行到底.........
2008-03-10 13:30
xfcyjhb
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:116
专家分:0
注 册:2008-2-26
收藏
得分:0 
看到了,谢谢LS。

多C多智慧,将C进行到底.........
2008-03-11 10:31
快速回复:有关素数的问题?
数据加载中...
 
   



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

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