寻找List之和的最近素数
Posted ukzq
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了寻找List之和的最近素数相关的知识,希望对你有一定的参考价值。
Task :
Given a List [] of n integers , find minimum mumber to be inserted in a list, so that sum of all elements of list should equal the closest prime number .
Notes
-
List size is at least 2 .
-
List‘s numbers will only positives (n > 0) .
-
Repeatition of numbers in the list could occur .
-
The newer list‘s sum should equal the closest prime number .
Input >> Output Examples
1- minimumNumber ({3,1,2}) ==> return (1)
Explanation:
- Since , the sum of the list‘s elements equal to (6) , the minimum number to be inserted to transform the sum to prime number is (1) , which will make the sum of the List equal the closest prime number (7) .
2- minimumNumber ({2,12,8,4,6}) ==> return (5)
Explanation:
- Since , the sum of the list‘s elements equal to (32) , the minimum number to be inserted to transform the sum to prime number is (5) , which will make the sum of the List equal the closest prime number (37) .
3- minimumNumber ({50,39,49,6,17,28}) ==> return (2)
Explanation:
- Since , the sum of the list‘s elements equal to (189) , the minimum number to be inserted to transform the sum to prime number is (2) , which will make the sum of the List equal the closest prime number (191) .
public class Solution { public static int minimumNumber(int[] numbers) { //首先求得现在list中的数值之和 int sumOri = 0; for(int i=0;i<numbers.length;i++){ sumOri += numbers[i]; } //用另一个数对原始和进行递增 int sumNow = sumOri; boolean searchPrime = true; //do...while递增原始数值,并判定是否为素数 while(searchPrime) { int count = 0; for(int i=2;i<=Math.floor(sumNow/2);i++){ if(sumNow%i==0){ //合数进入 count++; } } //count为0,这个数是质数,停止查找 if(count == 0){ searchPrime = false; }else{ //递增新的和 sumNow++; } } return sumNow-sumOri; // Do your magic! } }
以上是关于寻找List之和的最近素数的主要内容,如果未能解决你的问题,请参考以下文章