the program supposed calculate prime numbers using vectors , write results out file. when run it, calculates prime numbers 2-64 , prints out onto screen. when check text file it's creating, instead of results, writes out other data file. not doing right here?
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"); (int n = 2; n < 64; n++) { boolean isprime = true; (int = 0; < 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!!!!!"); } } }
you're using dataoutputsteam
used write out binary data. if want data written file in plan text form, instantiate output so:
printwriter out = new printwriter(new filewriter("primenumbers.txt"));
then, when comes time output, this:
out.println(n); out.flush();
and close when done so:
out.close();
this print 1 per line; not sure if want.
also, noticed in code writing dataos outside of if
statement checks if number prime, meaning writing numbers file , not prime numbers.
if need follow same convention in file system.out
, change code this:
if (count % number_per_line == 0) { system.out.println(n); out.println(n); } else{ system.out.print(n + " "); out.print(n + " "); } out.flush();
Comments
Post a Comment