このプログラムは、ベクトルを使用して素数を計算し、結果をファイルに書き出すことになっています。実行すると、2 ~ 64 の素数が計算され、画面に出力されます。しかし、作成中のテキスト ファイルを確認すると、結果ではなく、他のデータがファイルに書き出されます。私はここで何をしていないのですか?
import java.util.*;
import java.io.*;
public class PrimeByVector
{
public static void main(String[] args)
{
try
{
ObjectOutputStream OutputS = new ObjectOutputStream(new FileOutputStream("PrimeNumbers.txt"));
DataOutputStream DataOS = new DataOutputStream(OutputS);
final int NUMBER_PER_LINE = 10;
int count = 0;
// java.util.Vector vector = new java.util.Vector();
Vector v = new Vector();
System.out.println("The primes before 64 are: \n");
for (int n = 2; n < 64; n++)
{
boolean isPrime = true;
for (int i = 0; i < v.size(); i++)
{
int primeNumber =
((Integer)(v.elementAt(i))).intValue();
if (primeNumber > Math.sqrt(n)) break;
if (n % primeNumber == 0)
{
isPrime = false;
break;
}
}
if (isPrime)
{
count ++;
v.addElement(new Integer(n));
if (count % NUMBER_PER_LINE == 0)
{
System.out.println(n);
}
else
System.out.print(n + " ");
}
DataOS.write(n);
}
DataOS.close();
}
catch(IOException e)
{
System.out.println("Error!!!!!");
}
}
}