A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 月影千华 中级黑马   /  2015-9-27 11:47  /  238 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. public class PrimeTest {
  2.         public static void main(String[] args) {
  3.                 int[] arr = new int[99];
  4.                 int count = 0;
  5.                 // 打印出1-100内所有素数
  6.                 for (int i = 0; i < arr.length; i++) {
  7.                         arr[i] = i + 1;
  8.                         if (isPrime(arr[i])) {
  9.                                 System.out.print(arr[i] + "\t");
  10.                                 if (++count % 5 == 0)
  11.                                         System.out.println();
  12.                         }
  13.                 }
  14.                 // 求1-100内所有素数之和
  15.                 System.out.println("sum:"+getSum(arr));
  16.         }

  17.         // 此方法判断一个数是不是素数,返回值为boolean
  18.         public static boolean isPrime(int x) {
  19.                 int i;
  20.                 for (i = 2; i < x - 1; i++) {
  21.                         if (x % i == 0) {
  22.                                 break;
  23.                         }
  24.                 }
  25.                 if (i > x / 2 && x != 1) {
  26.                         return true;
  27.                 }
  28.                 return false;
  29.         }

  30.         // 此方法用于找出数组内的素数并求和,返回值为int
  31.         public static int getSum(int[] arr) {
  32.                 int sum = 0;
  33.                 for (int i = 0; i < arr.length; i++) {
  34.                         if (isPrime(arr[i])) {
  35.                                 sum += arr[i];
  36.                         }
  37.                 }
  38.                 return sum;
  39.         }
  40. }
复制代码

昨天朋友让我做一道题,求一个数组内所有素数之和,我就写了一个程序,最开始的时候,我是只写了一个方法,在方法内判断出数组里的素数,然后直接求和。后来想了想,觉得这样不好,因为这样功能不太单一,如果我哪天再有一个需求,想要打印出数组内的所有素数呢,那我不是又得重新写方法。所以后来改成了上面的代码,判断素数和求和分开来做,这样的话,就可以在更多的场合使用了。

2 个回复

倒序浏览
最开始学编程,有过求素数的测试。
回复 使用道具 举报
原来素数是这么求的啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马