Ask Question

Name:
Title:
Your Question:

Answer Question

Name:
Your Answer:
User Submitted Source Code!


Description:
  SV1
Language: C/C++
Code:
#include <bits/stdc++.h>
using namespace std;

void populate(vector<int> &num, int sz)
{
  for(int i=num.size()+2;i<=sz;i++)
  {
    num.push_back(i);
  }
  
}

int main()
{
  vector<int> num = {2,3,4,5};
  vector<int> prime = {};
  int fnz = 2, nnz = 3, pmd = 1, sz = 5, k;
  // edit iterations
  int i=6; // 6 MAX
  
  for(;i>0;i--)
  {
    prime.push_back(fnz);
    // update array size and primorials
    pmd*=fnz;
    sz=pmd+nnz;
    populate(num,sz);
  
    // remove multiples
    for(auto p:prime)
    {
      k = p-2;
      while (k<num.size())
      {
        num.at(k)=0;
        k+=p;
      }
    }
  
    // difference out
    int x=-1, count=-1;
    cout<<fnz<<": [";
    for(auto n:num)
    {
      if(n>0)
      {
        if(count>=0)
          cout<<(n-x)/2<<" ";
        count++; x=n;
      }
    }
    cout<<"], len = "<<count<<"\n";
    
    // update NZ numbers
    fnz=nnz;
    for(auto n:num)
    {
      if(n>fnz)
      {
        nnz=n;
        break;
      }
    }
  }
}
Comments: