Please write your question in detail here.
A question about Java programming.
Questions about"problem 12"on the website"project euler" ;.
The problem is
The sequence of triangular numbers is represented by the sum of natural numbers, and the seventh triangular number is 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28. The first 10 terms of the triangular number are:
1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ...
For the first seven terms, the divisors are listed as follows:
1: 1
3: 1,3
6: 1,2,3,6
10: 1,2,5,10
15: 1,3,5,15
21: 1,3,7,21
28: 1,2,4,7,14,28
The seventh triangle number 28 is now the first triangle number with more than 5 divisors.
In, there are some initial triangular numbers with more than 500 divisors.
and I wrote the following source code.
However, it is struggling because the result value does not come out even if it executes many times.
`` `Java
package eulerpro12;
public class Main {
public static boolean sosuHantei (long number) {
boolean hantei = true; for (int i = 2;i<= (int) Math.sqrt ((double) number);i ++) { if (number% i == 0) {
hantei = false;
break;
}
}
return hantei;
}>A method that assigns a number and returns true if it is a prime number, false if it is not a prime number
public static void main (String [] args) {
long triangleNum = 1;// Triangle number
int kosu = 1;// Number of divisors
int i = 1;
// Solve using the divisor number formula.
do {
i ++;
triangleNum + = i;
for (int j = 2;j<= triangleNum;j ++) {
if (sosuHantei (j) == false) {
continue;
}
int count = 0;// How many times is divisible by prime j?
while (triangleNum% j == 0) {
count ++;
}
kosu * = (count + 1);
}
} while (kosu<= 500);
System.out.println (triangleNum);
}
} `` `
TriedDivisor formula
"When a natural number N can be expressed as N = (a_1) ^ p_1 × ,, (a_n) ^ p_n using prime numbers a_1, a_2 ,,,, a_n, the number of divisors is (p_1 + 1) × ,, , X (p_n + 1) "
to find the value.
I'd be grateful if you could give me some hints about what's wrong with the above source code.

Answer # 1

Answer # 2
About the method
sosuHantei
public static boolean sosuHantei (long number) { boolean hantei = true; for (int i = 2;i<= (int) Math.sqrt ((double) number);i ++) { if (number% i == 0) { hantei = false; break; } } return hantei; }
However, if it is less than1
, it will betrue
. Judgment is also required ifnumber
is 1 or less.
Also, where I came to know
1.int
is enough for argument type.
2.Math.sqrt ((double) number)
>Math.sqrt (number)
Is good.
3. You can writereturn true;
return false;
, soboolean hantei;
is unnecessary.
If you write the code in consideration of the following, you can write like this.public static boolean sosuHantei (int n) { if (n<= 1) { return false; } for (int i = 2;i<= (int) Math.sqrt (n);i ++) { if (n% i == 0) { return false; } } return true; }
Related articles
 python 3x  typeerror: 'method' object is not subscriptable
 python  you may need to restart the kernel to use updated packages error
 javascript  how to check if an element exists in puppeteer
 xcode  pod install [!] no `podfile 'found in the project directory
 vuejs  [vuetify] unable to locate target [dataapp] i want to unit test to avoid warning
 android studio  emulator: dsound: could not initialize about the error message directsoundcapture
 android studio  unresolved reference comes out in kotlin
 mysql startup failed [error] innodb: the innodb_system data file 'ibdata1' must be writable
 django  oserror: [winerror 123] the file name, directory name, or volume label syntax is incorrect : '<frozen importlib_boot
 python  importerror: cannot import name md5 error cannot be resolved
In this loop,
triangleNum
does not change at all, so it is either "does not enter the loop" or "becomes an infinite loop".