svetlozar_kirkov

Bit Sifting

Sep 22nd, 2014
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.76 KB | None | 0 0
  1. using System;
  2.  
  3. namespace BitSifting
  4. {
  5.     class BitSifting
  6.     {
  7.         static void Main()
  8.         {
  9.             UInt64 inputNum = UInt64.Parse(Console.ReadLine());
  10.             string inputNumBinary = Convert.ToString((long)inputNum, 2).PadLeft(64,'0');
  11.             int sievesCount = int.Parse(Console.ReadLine());
  12.             UInt64[] sieves = new UInt64[sievesCount];
  13.             string[] sievesBinary = new string[sievesCount];
  14.             int zeroesCount = 0;
  15.  
  16.             for (int i = 0; i < sievesCount; i++)
  17.             {
  18.                 sieves[i] = UInt64.Parse(Console.ReadLine());
  19.                 sievesBinary[i] = Convert.ToString((long)sieves[i], 2).PadLeft(64, '0');
  20.             }
  21.  
  22.             string[] finalNum = new string[64];
  23.  
  24.             for (int i = 0; i < inputNumBinary.Length; i++)
  25.             {
  26.                 if (inputNumBinary[i] == '1')
  27.                 {
  28.                     zeroesCount = 0;
  29.  
  30.                     for (int j = 0; j < sievesBinary.Length; j++)
  31.                     {
  32.                         if (sievesBinary[j][i] == '0')
  33.                         {
  34.                             zeroesCount++;
  35.                         }
  36.                     }
  37.                     if (zeroesCount == sievesBinary.Length)
  38.                     {
  39.                         finalNum[i] = "1";
  40.                     }
  41.                 }
  42.                 else
  43.                 {
  44.                     finalNum[i] = "0";
  45.                 }
  46.             }
  47.  
  48.             int onesCount = 0;
  49.  
  50.             for (int i = 0; i < finalNum.Length; i++)
  51.             {
  52.                 if (finalNum[i] == "1")
  53.                 {
  54.                     onesCount++;
  55.                 }
  56.             }
  57.  
  58.             Console.WriteLine(onesCount);
  59.         }
  60.     }
  61. }
Advertisement
Add Comment
Please, Sign In to add comment