求第1500个只有2,3,5因子的数.数是从小到大排列,第一个数是1,1=2^0*3^0*5^0.

#include<stdio.h>intmain(){intcount=0;intnum=2*3*5;inti=0,j=0,k=0;while(count<1500){i... #include<stdio.h>
int main()
{
int count = 0;
int num = 2*3*5;
int i=0,j=0,k=0;
while(count < 1500) {
int x = num++;
i=0,j=0,k=0;
if(x % (2*3*5)) {
continue;
}
while(!(x % 2)) {
i ++;
x = x /2;
}
while(!(x % 3)) {
j ++;
x = x /3;
}
while(!(x % 5)) {
k ++;
x = x /5;
}
count ++;
}
printf(" 第%d个数是 2^%d*3^%d*5^%d\n", count, i, j, k);
return 0;
}
最后答案不对,帮我看看是什么地方错误
展开
 我来答
听不清啊
高粉答主

2015-11-12 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

程序已经修改完成,不过这种算法的效率太低。

#include<stdio.h>

int main()

{

int count = 1;

int num = 0;

int i=0,j=0,k=0;

while(count < 1500) {

int x = ++num;

i=0,j=0,k=0;

if(x%2&&x%3&&x%5) {

continue;

}

while(!(x % 2)) {

i ++;

x = x /2;

}

while(!(x % 3)) {

j ++;

x = x /3;

}

while(!(x % 5)) {

k ++;

x = x /5;

}

if(x>1)continue;

count ++;

//printf("%d ",num);    //查看用,第1个数是1

}

printf(" 第%d个数是%d=2^%d*3^%d*5^%d\n", count, num, i, j, k);

getch();

return 0;

}

帐号已注销
2020-11-11 · TA获得超过3111个赞
知道大有可为答主
回答量:4114
采纳率:0%
帮助的人:262万
展开全部

第1500项是 859963392。它等于2的17次方乘以3的8次方。

使用fortran语言编程,代码有算法注释,运算时间在普通个人电脑上是24毫秒。

以下是输出结果和程序源代码。

该算法可以计算到至少n=10000,耗时0.95秒。运算结果见下图。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式