- public class PrimeTest {
- public static void main(String[] args) {
- int[] arr = new int[99];
- int count = 0;
- // 打印出1-100内所有素数
- for (int i = 0; i < arr.length; i++) {
- arr[i] = i + 1;
- if (isPrime(arr[i])) {
- System.out.print(arr[i] + "\t");
- if (++count % 5 == 0)
- System.out.println();
- }
- }
- // 求1-100内所有素数之和
- System.out.println("sum:"+getSum(arr));
- }
- // 此方法判断一个数是不是素数,返回值为boolean
- public static boolean isPrime(int x) {
- int i;
- for (i = 2; i < x - 1; i++) {
- if (x % i == 0) {
- break;
- }
- }
- if (i > x / 2 && x != 1) {
- return true;
- }
- return false;
- }
- // 此方法用于找出数组内的素数并求和,返回值为int
- public static int getSum(int[] arr) {
- int sum = 0;
- for (int i = 0; i < arr.length; i++) {
- if (isPrime(arr[i])) {
- sum += arr[i];
- }
- }
- return sum;
- }
- }
复制代码
昨天朋友让我做一道题,求一个数组内所有素数之和,我就写了一个程序,最开始的时候,我是只写了一个方法,在方法内判断出数组里的素数,然后直接求和。后来想了想,觉得这样不好,因为这样功能不太单一,如果我哪天再有一个需求,想要打印出数组内的所有素数呢,那我不是又得重新写方法。所以后来改成了上面的代码,判断素数和求和分开来做,这样的话,就可以在更多的场合使用了。
|
|