int curPrime; // Value currently considered for primeness
8. int numPrimes; // Number of primes found so far.
9. boolean isPrime; // Is curPrime prime?
10. int [] primes = new int [MAXPRIMES]; // The list of prime numbers.
11.
12. // Initialize 2 into the list of primes.
13. primes [0] = 2;
14. numPrimes = 1;
15. curPrime = 2;
16. while (numPrimes < n)
17. {
18. curPrime++; // next number to consider ...
19. isPrime = true;
20. for (int i = 0; i <= numPrimes-1; i++)
21. { // for each previous prime.
22. if (isDivisible (primes[i], curPrime))
23. { // Found a divisor, curPrime is not prime.
24. isPrime = false;
25. break; // out of loop through primes.
26. }
27. }
28. if (isPrime)
29. { // save it!
30. primes[numPrimes] = curPrime;
31. numPrimes++;
32. }
33. } // End while
34.
35. // Print all the primes out.
36. for (int i = 0; i <= numPrimes-1; i++)
37. {
38. System.out.println ("Prime: " + primes[i]);
39. }
40. } // end printPrimes
(a)
(b) 如果MAXPRIMES的值等于3,则n=5的时候将发生数组越界的错误,而n=3的时候程序将正常进行
(c)n=1
(d) node coverage:
TR={1,2,3,4,5,6,7,8,9,10,11,12,13}
edge coverage:
TR={(1,2),(2,3),(2,4),(3,5),(4,11),(5,6),(5,9),(6,7),(6,8),(7,9),(8,5),(9,2),(9,10),(10,2),(11,12),(11,13),(12,11)}
Prime path Coverage
TR={[1,2,3,5,6,7,9,10],[1,2,3,5,6,8],[1,2,3,5,9,10],[1,2,4,11,12],[1,2,4,11,13],
[2,3,5,6,7,9,2],[2,3,5,9,2],[2,3,5,6,7,9,10,2],[2,3,5,9,10,2],
[3,5,6,7,9,2,3],[3,5,6,7,9,2,4,11,13],[3,5,6,7,9,2,4,11,12],[3,5,6,7,9,10,2,3],[3,5,6,7,9,10,2,4,11,13],[3,5,6,7,9,10,2,4,11,12],[3,5,9,2,3],[3,5,9,2,4,11,13],[3,5,9,2,4,11,12],[3,5,9,10,2,3],[3,5,9,10,2,4,11,13],[3,5,9,10,2,4,11,12],
[5,6,8,5],[5,6,7,9,2,3,5],[5,6,7,9,10,2,3,5],[5,9,2,3,5],[5,9,10,2,3,5],
[6,8,5,6],[6,8,5,9,2,4,11,12],[6,8,5,9,2,4,11,13],[6,8,5,9,10,2,4,11,12],[6,8,5,9,10,2,4,11,13],[6,7,9,2,3,5,6],[6,7,9,10,2,3,5,6],
[7,9,10,2,3,5,6,7],[7,9,2,3,5,6,7],
[8,5,6,8],
[9,2,3,5,9],[9,2,3,5,6,7,9],[9,10,2,3,5,9],[9,10,2,3,5,6,7,9],
[10,2,3,5,6,7,9,10],[10,2,3,5,9,10],
[11,12,11],
[12,11,13],[12,11,12]