在三位数里,有9个约数的数有几个?怎么算?

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/12 15:24:07

在三位数里,有9个约数的数有几个?怎么算?
在三位数里,有9个约数的数有几个?
怎么算?

在三位数里,有9个约数的数有几个?怎么算?
9=9=3*3
所以有9个约数的数的标准分解式具有两种形式:
p^8(一个质数的8次方)或者q^2*r^2(两个不同的质数平方的乘积).
为了使这个数在100~999之间,则100≤p^8≤999,100≤(qr)^2≤999
分别解得p=2,及10≤qr≤30
因此所求的三位数有:
2^8=256;
q=2,r=5时 (2*5)^2=100
q=2,r=7时 (2*7)^2=196
q=2,r=11时(2*11)^2=484
q=2,r=13时(2*13)^2=676
q=3,r=5时 (3*5)^2=225
q=3,r=7时 (3*7)^2=441
共有7个.

因为如果不是平方数,那么它的约数的个数一定会是偶数个,
只有平方数的约数的个数才会是奇数个。
所以考虑的数字范围是
{10^2, 11^2, 12^2 , 13^2, ... 30^2 , 31^31}
={100, 121, 144 , 169, ... 900,961}
然后
看 100在小于10的时候是否只有4个约数,
看 121在小...

全部展开

因为如果不是平方数,那么它的约数的个数一定会是偶数个,
只有平方数的约数的个数才会是奇数个。
所以考虑的数字范围是
{10^2, 11^2, 12^2 , 13^2, ... 30^2 , 31^31}
={100, 121, 144 , 169, ... 900,961}
然后
看 100在小于10的时候是否只有4个约数,
看 121在小于11的时候是否只有4个约数,
看 144在小于12的时候是否只有4个约数,
。。。
看 961在小于31的时候是否只有4个约数。
结果是:100 196 225 256 441 484 676
这个结果我是编程序算出来的,也没有手算。
代码:
#include
int main()
{
int i,j,cnt,num;
for(i=10;i<=31;i++)
{
num=i*i;
cnt=0;
for(j=1;j {
if(num%j==0) {cnt++;}
}
if(cnt==4) {printf(" %d ",num);}
}
getch();
}

收起

100
196
225
441
484
676