你的随机数没有问题 如果没有10以下的应该纯粹是运气问题
不过如果你只是要生成1以上的随机数的话不需要if(i>0)
int i = (int)(Math.random()*1000)+1;就行
这样会生成[1,1000]的随机数如果要不包括1000就
int i = (int)(Math.random()*999)+1;
素数的定义你应该知道吧 搞个循环去除就行了 大概是这样 没验证过
boolean isPrimeNo(int number) {
if (number==1||number==2) return true;
for (int i=2; i
}
return true;
}
至于文件操作 找个JDK文档 看下File类 看下输入输出流 或者google一把java 文件操作 就不在这里贴了
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class Test {
public int rend() {
int i = (int) (Math.random() * 1000);
return i;
}
public void p() {
int k = 100;
int[] num = new int[k];
for (int c = 0; c < num.length; c++) {
num[c] = rend();
for (int j = 2; j < num[c]; j++) {
if (num[c] % j == 0)
break;
if (j == num[c] - 1)
System.out.println(num[c]);
}
BufferedOutputStream output = null;
try {
output = new BufferedOutputStream(new FileOutputStream(
new File("c:/aa.txt"),true));
output.write((String.valueOf(num[c])+" ").getBytes());
//output.write(num[c]);
output.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
output.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String args[]) {
Test test = new Test();
test.p();
}
}
程序看下来没有问题,顶多一点吹毛求疵的东西
我运行的结果:
753,497,693,631,385,688,269,7,398,874,807,502,305,580,174,517,717,944,386,671,999,354,711,623,47,236,909,466,692,831,838,393,779,347,402,663,8,221,455,493,231,334,42,414,998,972,78,785,815,962,397,624,727,924,903,635,591,803,390,346,613,895,530,568,507,388,394,936,962,26,839,201,897,899,84,38,391,494,774,592,57,110,907,665,65,432,41,439,962,570,321,917,972,169,981,766,436,225,169,126
有7在,说明ok的
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Random;
public class aa{
public static void main(String[] agrs){
BufferedOutputStream output =null;
try {
output = new BufferedOutputStream(new FileOutputStream(
new File("c:/aa.txt")));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
Random random = new Random();
int temp = 0;
try {
for(int i=0;i<100;i++){
temp = random.nextInt(1000);
System.out.println(temp);
if(temp%2!=0){
output.write((String.valueOf(temp)+" ").getBytes());
}
}
output.flush();
}catch(IOException e){
e.printStackTrace();
}
}
}
Anson0370 回答的已经很详细了
素数那个方法可以再优化一下,没必要除到头
一半就可以了,另外如果除2没除开,那4,6,8.。。 肯定除不开