CountNonDivisible【★★★★★】

 1         /// <summary>
 2         /// Solution
 3         /// 100/100
 4         /// </summary>
 5         /// <param name="A"></param>
 6         /// <returns></returns>
 7         public static int[] solution(int[] A)
 8         {
 9             Dictionary<int, int> dic = new Dictionary<int, int>();
10             int[] result = new int[A.Length];
11 
12             for (int i = 0; i < A.Length; i++)
13             {
14                 if (!dic.ContainsKey(A[i]))
15                     dic.Add(A[i], 1);
16                 else
17                     dic[A[i]]++;
18             }
19 
20             for (int i = 0; i < A.Length; i++)
21             {
22                 for (int j = 1; j * j <= A[i]; j++)
23                 {
24                     if (A[i] % j == 0)
25                     {
26                         result[i] += dic.ContainsKey(j) ? dic[j] : 0;
27                         if (A[i] / j != j)
28                             result[i] += dic.ContainsKey(A[i] / j) ? dic[A[i] / j] : 0;
29                     }
30                 }
31                 result[i] = A.Length - result[i];
32             }
33 
34             return result;
35         }

 

posted @ 2015-07-26 02:33  叫我霍啊啊啊  阅读(260)  评论(0编辑  收藏  举报