| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 944 人关注过本帖
标题:求下面的算法!(不要笑我)
只看楼主 加入收藏
troubles0407
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-5-19
收藏
得分:0 
和求约数是一回事吧~~
#include<stdio.h>
void main()
{
int num,i,a;
printf("enter the number:(q to quit)\n");
while(scanf("%d",&num)==1)
{
for(i=2,a=0;i*i<=num;i++)
{
if(num%i==0)
{printf("%d %d\n",i,num/i);
a++;
}
}
if(a==0)
printf("no number\n");
printf("enter next number:(q to quit)");
}
}
请问这个可以吗?
2007-07-05 22:13
leeco
Rank: 4
等 级:贵宾
威 望:10
帖 子:1029
专家分:177
注 册:2007-5-10
收藏
得分:0 
你是要得要一个解还是所有解?
2007-07-05 22:23
酒肉弥勒佛
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:399
专家分:0
注 册:2006-6-6
收藏
得分:0 
以下是引用troubles0407在2007-7-5 22:13:44的发言:
和求约数是一回事吧~~
#include<stdio.h>
void main()
{
int num,i,a;
printf("enter the number:(q to quit)\n");
while(scanf("%d",&num)==1)
{
for(i=2,a=0;i*i<=num;i++)
{
if(num%i==0)
{printf("%d %d\n",i,num/i);
a++;
}
}
if(a==0)
printf("no number\n");
printf("enter next number:(q to quit)");
}
}
请问这个可以吗?

你的算法比我的简单


编程是为了提高效率,好的程序是因为他的高效;在编程的道路上,永远追逐高效的算法
2007-07-06 00:35
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
其实也不必特意拿出素数来除,因为它给的数也就100以内.
求素数是只要算到根号就可以了.

倚天照海花无数,流水高山心自知。
2007-07-06 08:35
huangjun308
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-7-5
收藏
得分:0 
同意上楼的观点

2007-07-06 10:04
酒肉弥勒佛
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:399
专家分:0
注 册:2006-6-6
收藏
得分:0 
用素数的原因是为了提高效率,循环次数会减少很多,我修改下我的算法,应该比11楼的效率高,但是有个bug,就是用重复的数值的剩积的数时,结果会不全,不过题目屏蔽这个情况:


int main()
{
int sum[4]={2,3,5,7};
int a,b,i=0;
int ret[50],s=0;

printf("input a number:");
scanf("%d",&a);

b=a;
while((sum[i]<sqrt(a) && i<4))
{
if(a%sum[i]==0)
{
ret[s]=sum[i];

a=a/sum[i];
i=0;
s++;
}
else
i++;
}

for(i=0;i<s;i++)
{
printf("%d*%d\n",ret[i],b/ret[i]);
ret[i+1]=ret[i+1]*ret[i];
}
}

编程是为了提高效率,好的程序是因为他的高效;在编程的道路上,永远追逐高效的算法
2007-07-06 11:36
我是菜鸟哦
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:921
专家分:209
注 册:2007-5-4
收藏
得分:0 
对啊,求素数是也不是用根号该数然后得到的吗?

偶是菜鸟鸟偶惧WHO?!!!!
2007-07-06 11:52
酒肉弥勒佛
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:399
专家分:0
注 册:2006-6-6
收藏
得分:0 
以下是引用我是菜鸟哦在2007-7-6 11:52:18的发言:
对啊,求素数是也不是用根号该数然后得到的吗?

这句没明白什么意思


编程是为了提高效率,好的程序是因为他的高效;在编程的道路上,永远追逐高效的算法
2007-07-06 13:01
快速回复:求下面的算法!(不要笑我)
数据加载中...
 
   



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

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