请教关于因子的一个问题
求第1500个只有2,3,5因子的数 数是从小到大排列
如:第1个数是1,1=2^0*3^0*5^0
第2个数是2,1=2^1*3^0*5^0
第3个数是3,1=2^0*3^1*5^0
第4个数是4,1=2^2*3^0*5^0
----------------解决方案--------------------------------------------------------
#include<stdio.h>
int main()
{
int n,num,i,j,k,count=0;
for(num=1;num<=1500;num++)
{
i=0,j=0,k=0;
n=num;
while(n%2==0)
{
n/=2;
i++;
}
while(n%3==0)
{
n/=3;
j++;
}
while(n%5==0)
{
n/=5;
k++;
}
if(n==1)
{
count++;
printf("第%d个数是:%d=2^%d*3^%d*5^%d\n",count,num,i,j,k);
}
}
return(0);
}
----------------解决方案--------------------------------------------------------
人家叫你求第1500个数,不是1500以内的数啊!!!
----------------解决方案--------------------------------------------------------
以下是引用我不是郭靖在2006-10-10 0:27:43的发言:
人家叫你求第1500个数,不是1500以内的数啊!!!
人家叫你求第1500个数,不是1500以内的数啊!!!
自己改一下不就行了
----------------解决方案--------------------------------------------------------
以下是引用cdmalcl在2006-10-10 8:18:26的发言:
我是菜鸟,我不会改.自己改一下不就行了
还请cdmalcl 改一下,谢谢.
----------------解决方案--------------------------------------------------------
第1500个:
859963392=2^17*3^8*5^0
----------------解决方案--------------------------------------------------------
以下是引用unicorn在2006-10-10 12:27:24的发言:
第1500个:
859963392=2^17*3^8*5^0
第1500个:
859963392=2^17*3^8*5^0
我要程序啊,有程序吗?
----------------解决方案--------------------------------------------------------
nuciewth的程序写的很好啊,自己分析下就出来了
----------------解决方案--------------------------------------------------------
我是菜鸟,不会改啊,有谁会改,帮改下啊?
----------------解决方案--------------------------------------------------------
不是说让你改 是让你分析
nuciewth的程序中的count 是计数器,记录了当值num为1500时的个数
你需要求的是第1500个数,所以你可以让count的上限为1500,当循环到count=1500时得到的num的值
当然这么改会很消耗程序执行时间的
不好意思修改了nuciewth的程序
程序代码:
#include<stdio.h>
int main()
{
int n,num,i,j,k,count=0;
for(num=1;count<=1500;num++)
{
i=0,j=0,k=0;
n=num;
while(n%2==0)
{
n/=2;
i++;
}
while(n%3==0)
{
n/=3;
j++;
}
while(n%5==0)
{
n/=5;
k++;
}
if(n==1)
{
count++;
printf(\"%d\n\",count);//记数显示
}
}
printf(\"第1500个数是:%d=2^%d*3^%d*5^%d\n\",num,i,j,k);
return(0);
}
int main()
{
int n,num,i,j,k,count=0;
for(num=1;count<=1500;num++)
{
i=0,j=0,k=0;
n=num;
while(n%2==0)
{
n/=2;
i++;
}
while(n%3==0)
{
n/=3;
j++;
}
while(n%5==0)
{
n/=5;
k++;
}
if(n==1)
{
count++;
printf(\"%d\n\",count);//记数显示
}
}
printf(\"第1500个数是:%d=2^%d*3^%d*5^%d\n\",num,i,j,k);
return(0);
}
----------------解决方案--------------------------------------------------------