【发布时间】:2016-09-01 08:11:04
【问题描述】:
我有一个问题要检查总计数是否等于数字的任何因素。我正处于 JAVA 编程的学习阶段。问题如下:
*
Bishal 数是一个数,使得非平凡因子的数量 是数量的一个因素。例如,6 是比沙尔数,因为 6 有两个非平凡因数:2 和 3。(非平凡因数是一个因数 除了 1 和数字)。因此 6 有两个非平凡因子。现在, 2 是 6 的因数。因此非平凡因数的数量是因数 6。因此 6 是比沙尔数。另一个比沙尔数是 30,因为 30 有 2、3、5、6、10、15 作为非平凡因数。因此 30 有 6 不平凡的因素。请注意,6 是 30 的因数。所以 30 是 Bishal 数字。然而,21 不是比沙尔数。非平凡因素 21 是 3 和 7。因此非平凡因素的数量是 2。请注意 2 不是 21 的因数。因此,21 不是比沙尔数。写 一个名为 isBishal 的函数,如果它的整数参数是一个,则返回 1 Bishal 数,否则返回 0。
函数的签名 是 int isBishal(int n)
*
我可以创建一个函数。但我不知道如何用因子检查总数。我的解决方案的某些部分如下:
public static int isBishal(int n){
int count=0; //for number of factor of entered number n
for (int i=2; i<n; i++){ //for excluding 1 and itself in factors list
double result=(double)n/i;
if(result==Math.ceil(result)){
int factor=(int) result; //to check factor(one can use reminder 0 case)
count++;
} //closing if clause
} //closing for loop
我在哪里可以将最终计数(即因子总数)与任何因子进行比较?如果我使用因子等于计数,则计数从 1、2、3 开始,依此类推。它可以将 count 1 、 2,3 等与因子进行比较。我需要比较最终计数。所以我已经把计数排除在循环之外。但是,因素的范围就在 if 子句之内。无法在循环外进行比较。
谁能在这个程序中让我清楚。P.S:这个程序不完整因为我无法比较。
【问题讨论】: