Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 子例程返回n中非素数的正因子之和_C++ - Fatal编程技术网

C++ 子例程返回n中非素数的正因子之和

C++ 子例程返回n中非素数的正因子之和,c++,C++,sum子程序有一个参数n,通过它接收一个自然数(n [1,106]). 子例程返回n中非素数的正因子之和。 编写子例程的完整定义。 示例:对于n=12,子例程返回23(23=1+4+6+12) 这是我尝试过的,但没有结果 int suma(int n) { int d,s=0,prim; prim=1; if(n<2) { prim=0; s=n; } for(d=2; d*d<=n; d++)

sum子程序有一个参数n,通过它接收一个自然数(n [1,106]). 子例程返回n中非素数的正因子之和。 编写子例程的完整定义。 示例:对于n=12,子例程返回23(23=1+4+6+12)

这是我尝试过的,但没有结果

int suma(int n)
{
    int d,s=0,prim;
    prim=1;
    if(n<2)
    {
        prim=0;
        s=n;
    }
    for(d=2; d*d<=n; d++)
    {
        if(n%d==0)
            prim=0;
        if(prim==0)
            s+=d;
    }
    return s;
}
intsuma(intn)
{
int d,s=0,prim;
prim=1;

if(nI重写了代码的某些部分,使其更清晰,并突出显示了当前代码中缺少的函数

bool isPrime(int d) {
    /* TODO */
}

int suma(int n)
{
    int s = 1; // you can always start with 1
    // n if n is not prime
    if (!isPrime(n)) {
        s += n;
    }
    // bool prim=true; // you don't need it
    /* if(n<2)
    {
        // prim=false;
        s=n;
    }*/ // this block doesn't make sense for me
    for(int d = 2; 2 * d <= n; ++d) // the loop has to iterate from 2 to n/2
    {
        if(n % d == 0) { // d is a positive divisor of n
            if(!isPrime(d)) { // check if d is prime
                s += d;
            }
        }
    }
    return s;
}
bool isPrime(int d){
/*待办事项*/
}
内苏马(内北)
{
int s=1;//始终可以从1开始
//如果n不是素数
如果(!iPrime(n)){
s+=n;
}
//bool prim=true;//您不需要它

/*if(你应该创建一个函数
isPrime
,检查一个数字是否为素数。
if(n%d==0)
不检查
d
是否为素数。这个函数应该包含什么?谢谢,所以muchit不起作用…@tiberiu714什么不起作用?