标题:[求助]如何求质因子
只看楼主
清风飒影
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2006-11-10
 问题点数:0 回复次数:8 
[求助]如何求质因子

希望高手给个算法,程序源代码最好。(代码中请不用数组、指针、函数、单链表!) 谢谢。

我想了一天、没想出来。主要是有限制。

题目是这样的: 求2--100之间每个整数的质因子并输出每个质因子。

(质因子就是质数的因子,也称质因数或质约数。 255的因子有1 、3、5、15、17、51、85、255。其中是质数的是1、3、5、17 所以255的质因子就是1、3、5、17。所以最大质因子是17。55不是255的因子,也不是质数
质数,又叫“素数”)

搜索更多相关主题的帖子: 源代码 素数 质数 求质 质因数 
2006-11-12 19:11
我不是郭靖
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:494
专家分:6
注 册:2006-10-4
得分:0 
不给用数组?

那你就先判断是否是它的因子,如果是,再判断是否为素数

2006-11-12 19:31
清风飒影
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2006-11-10
得分:0 

谢谢斑竹。

是的,不用数组。

可是这样好象有点繁琐。

具体我该如何我如何求得一个数的质因子呢?

可不可以写点类似的核心代码,如何得到这个数的质因子。



2006-11-12 19:47
我不是郭靖
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:494
专家分:6
注 册:2006-10-4
得分:0 

#include<stdio.h>
int main()
{
int i,j,t,flag;
for(i=2;i<=100;i++)
{
printf("%3d 的质因子:",i);
for(j=2;j<=i;j++)
{
if(i%j==0)
{
flag=1;
t=2;
while(t*t<=j)
{
if(j%t==0)
{
flag=0;
break;
}
t++;
}
if(flag)
printf("%5d",j);
}
}
printf("\n");
}
return 0;

}


注意:1不是质数


2006-11-12 20:09
我不是郭靖
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:494
专家分:6
注 册:2006-10-4
得分:0 
以下是引用清风飒影在2006-11-12 19:11:45的发言:

希望高手给个算法,程序源代码最好。(代码中请不用数组、指针、函数、单链表!) 谢谢。

我想了一天、没想出来。主要是有限制。

题目是这样的: 求2--100之间每个整数的质因子并输出每个质因子。

(质因子就是质数的因子,也称质因数或质约数。 255的因子有1 、3、5、15、17、51、85、255。其中是质数的是1、3、5、17 所以255的质因子就是1、3、5、17。所以最大质因子是17。55不是255的因子,也不是质数
质数,又叫“素数”)

你题目中把1也当成质数


2006-11-12 20:10
清风飒影
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2006-11-10
得分:0 

太感谢斑竹了!!这么快就写出来了。 谢谢!

向你看齐。

恩,1不是质数


2006-11-12 20:13
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 
如果测试数据比较多(比如说楼主的题目是输出每个整数的质因子),就先把2-100之间的质数全部保存起来.以后只要遍历一次就可以了.
这样会提高效率.

倚天照海花无数,流水高山心自知。
2006-11-12 21:49
我不是郭靖
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:494
专家分:6
注 册:2006-10-4
得分:0 
它不给用数组,怎么保存啊?

2006-11-12 23:27
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 
没办法了,一个一个计算吧...

倚天照海花无数,流水高山心自知。
2006-11-12 23:40



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




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

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