/**判断质数,说来郁闷,曾经用C写过,那时感觉很容易,但今天再写却花我半个多小时
* 而且还这么冗长的代码,效率也不高,哪位大侠发份更好的算法给我呀?
* * @author lyj
* Email:lyj168@gmail.com
*/
public class PrimeNumber {//求一个范围内的所有质数,base为开始,max为结尾
static void betweenCheck(int base, int max) {
boolean yes = false;
int count = 1;
for (int i = base; i <= max; i++) {
for (int j = 2; j < i/* (int) (i / 2) */; j++) { //之所以要注释掉这一块是因为我不想再加长代码去解决3的问题
if (i % j == 0) {
yes = false;
break;
} else {
yes = true;
}
}
if (yes) {
System.out.print("\t" + i);
count++;
}
if (count % 11 == 0) {
System.out.println();
count = 1;
}
}
}
static void onePrime(int num) {//求单个数是否为质数
for (int i = 2; i < num; i++) {
if (num % i == 0) {//这样写似乎没有问题:)
System.out.println("\'" + num + "\' not is primer number!");
break;
} else
System.out.println("\'" + num + "\' is primer number!");
break;
}
}
public static void main(String[] args) {
betweenCheck(1, 1000);
// System.out.println(1%2);//数学老差了,不得已的
// onePrime(73);
}
}
/*
* 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103
* 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199
* 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313
* 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409 419 421 431 433
* 439 443 449 457 461 463 467 479 487 491 499 503 509 521 523 541 547 557 563
* 569 571 577 587 593 599 601 607 613 617 619 631 641 643 647 653 659 661 673
* 677 683 691 701 709 719 727 733 739 743 751 757 761 769 773 787 797 809 811
* 821 823 827 829 839 853 857 859 863 877 881 883 887 907 911 919 929 937 941
* 947 953 967 971 977 983 991 997
*/
4/19/2007
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment