小编Man*_*ill的帖子

Prime因子生成C++

这是我到目前为止:

//project Eular Problem 4: Prime Factors
#include<iostream>
#include<cmath>
typedef unsigned long long int uint_64;
using namespace std;

void storeFactors(uint_64 factors[], uint_64 num)
{
    for(uint_64 i=0;i*i<num;i++
       factors[i]=1;       //assign 1 to all the values

    for(uint_64 j=2; j*j<num;j++){
       if(num%j!=0)
          factors[j]=0;       //assign 0 to non-factors
    } 
}  

//Sieve of Eratosthenes to generate primes
void gen_primes(uint_64 arr[],uint_64 firstElement, uint_64 lastElement, uint_64 size)
{
    for(uint_64 i=0;i<size;i++)   //assigning 1 to all the values
       arr[i]=1;

    for(uint_64 i=2;i*i<=lastElement;i++){   //loop until the square-root of n
       if(arr[i])
          for(uint_64 j=i;j*i<=lastElement;j++)      //eliminate …
Run Code Online (Sandbox Code Playgroud)

c++ prime-factoring

2
推荐指数
1
解决办法
791
查看次数

C++用于打印标尺不起作用的递归函数.

我一直在努力从一本书中自学C++.下面这段代码是一个问题,因为我无法弄清楚我做错了什么.代码是本书的一个例子,但它不会带来相同的结果.

函数subdivide()应该使用分而治之的方法在中点分割数组并打印字符'|' 在那里(创造一个统治者的幻觉),随后在每一个新线上打印中点.问题是,最终的印刷品只包含字符"|" 在所有线的终点处,中间没有打印字符.

我试图张贴图片,但显然我不能.

我会感激任何帮助.这是C++代码:

//using recursion to subdivide a ruler
#include<iostream>
const int len=66;
const int div=6;
void subdivide(char ar[], int min,int max,int level);

int main()
{
using namespace std;
    char ruler[len];
    int i;
    for(int i=1; i<(len-2); i++)
        ruler[i]=' ';
    ruler[len-1]='\0';

    int min=0;
    int max=len-2;
    ruler[min]=ruler[max]='|';

    cout<<ruler<<endl;

    for(i=1;i<=div;i++){
        subdivide(ruler, min, max, i);
        cout<<ruler<<endl;
          for(int j=1; j<len-2; j++)
                ruler[j]=' ';
    }

return 0;
}

void subdivide(char ar[],int low,int high,int level)
{
using namespace std;
if (level==0);
    return;
int mid=(high+low)/2; …
Run Code Online (Sandbox Code Playgroud)

c++ recursion function

0
推荐指数
1
解决办法
1266
查看次数

标签 统计

c++ ×2

function ×1

prime-factoring ×1

recursion ×1