编写程序,求2-200之间的所有素数,并将结果以文本方式保存到prime.dat文件中。
import java.io.*;
public class Prime
{
public static void main(String[] args) throws IOException
{
int i,j;
for(j=2;j<=200;j++)
{
for(i=2;i<=j/2;i++)
{
if(j%i==0)
break;
}
if(i>j/2)
{
File file=new File("c:/test.txt");
file.createNewFile();
FileWriter w=new FileWriter(file);
w.write(j);
w.close();
}
}
}
}
请指出以上程序的错误并更正,谢谢!
import java.io.*;
public class Prime
{
public static void main(String[] args) throws IOException
{
int i,j;
for(j=2;j<=200;j++)
{
for(i=2;i<=j/2;i++)
{
if(j%i==0)
break;
}
if(i>j/2)
{
File file=new File("c:/test.txt");
file.createNewFile();
FileWriter w=new FileWriter(file);
w.write(j);
w.close();
}
}
}
}
请指出以上程序的错误并更正,谢谢!
file.createNewFile();
FileWriter w=new FileWriter(file); 这一段放到循环前面
w.close();
放到循环后面
否则一直只保存最后一个了!
public class Prime
{
public static void main(String[] args) throws IOException
{
int i,j;
for(j=2;j <=200;j++)
{
for(i=2;i <=j/2;i++)
{
if(j%i==0)
break;
}
if(i>j/2)
{
File file=new File("c:/test.txt");
if(!file.exists())
file.createNewFile();
FileWriter w=new FileWriter(file);
w.write(j);
w.close();
}
}
}
}
FileWriter w=new FileWriter(file, true);
public class Prime
{
public static boolean isprime(int x) {
for (int i = 2; i <= Math.sqrt(x); i++) {
if (x % i == 0)
return false;
}
return true;
}
public static void main(String[] args) throws IOException
{
PrintWriter out=new PrintWriter("c:/test.txt");
int n = 1;
int i = 0;
out.printf("%-3d ", 2);
for (i = 3; i <= 200; i += 2) {
if (isprime(i)) {
out.printf("%-3d ", i);
n++;
if (n < 6)
continue;
out.println();
n = 0;
}
}
out.close();
}
}
public class Prime
{
public static void main(String[] args) throws IOException
{
File file=new File("c:/test.txt");
file.createNewFile();
FileWriter w=new FileWriter(file);
int i,j;
for(j=2;j <=200;j++)
{
for(i=2;i <=j/2;i++){
if(j%i==0)
break;
}
if(i>j/2)
{
w.write(String.valueOf(j)+"\n");
}
}
w.close();
}
}
import java.io.FileWriter;
import java.io.IOException;public class FillSusu {
public static void main(String[] args) throws IOException
{
File file=new File("c:/test.txt");
file.createNewFile();
FileWriter w=new FileWriter(file); int i,j;
for(j=2;j <=200;j++)
{
for(i=2;i <=j/2;i++){
if(j%i==0)
break;
}
if(i>j/2)
{
w.write(String.valueOf(j)+"\r\n");
}
}
w.close();
}
}
这样写入文件中的数据就不会有小黑方块了.