搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 输出555555的最大公约数(不包含本身)
标题:
输出555555的最大公约数(不包含本身)
只看楼主
wang155423
等 级:
侠之大者
帖 子:216
专家分:408
注 册:2011-9-4
结帖率:
100%
楼主
问题点数:0 回复次数:6
输出555555的最大公约数(不包含本身)
#include "stdio.h"
void main()
{
int i,a[100000],j=0;
for(i=1;i<555555;i++)
if(555555%i==0)
a[j++]=i;
printf("%d\n",a[j-1]);
}
改程序运行结果正确。
但将上面的a[100000]改为a[1000000]后,却运行不出来(如下),求解释,不懂诶,这和数组定义的大小又有什么关系呢??我用的是VC++6.0
搜索更多相关主题的帖子:
include
公约数
2011-11-30 12:37
modengwen
来 自:柳州
等 级:
论坛游民
帖 子:21
专家分:19
注 册:2011-11-21
第
2
楼
得分:0
不是两个数才有公约数的吗?一个数的最大公约数没听说过。我想你的意思是求555555的最大的因子吧?
2011-11-30 13:24
embed_xuel
等 级:
贵宾
威 望:
58
帖 子:3845
专家分:11385
注 册:2011-9-13
第
3
楼
得分:0
回复 楼主 wang155423
数组是局部变量放在栈上,栈是一定大小的,把数组定成全局变量试试
总有那身价贱的人给作业贴回复完整的代码
2011-11-30 13:24
心灵百合
等 级:
职业侠客
帖 子:215
专家分:367
注 册:2011-3-30
第
4
楼
得分:0
把数据类型int改为long试试,int的数值范围是(-2^16+1~2^16-1);a[1000000]中1000000>2^16-1存放不了,当i>2^16-1后内存会溢出。
2011-11-30 17:09
小夫子
来 自:哈尔滨
等 级:
论坛游民
帖 子:27
专家分:74
注 册:2011-11-17
第
5
楼
得分:0
恩 int范围没那么大 还有不用循环那么多次 它开方就可以 可以提高效率 那个 ++ 是先加吧后赋值吧 如果是输出就是j
2011-11-30 20:30
waterstar
等 级:
小飞侠
威 望:
5
帖 子:984
专家分:2810
注 册:2010-2-12
第
6
楼
得分:0
3楼正解,数组数据量超过10000的最好放在堆上分配内存,也就是定义成全局变量。
冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2011-11-30 20:51
wang155423
等 级:
侠之大者
帖 子:216
专家分:408
注 册:2011-9-4
第
7
楼
得分:0
哦,谢谢大家
2011-11-30 21:24
7
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-356587-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.177176 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved