调用两个函数求素数和

/*编写两个函数:一个函数void sum(int n)求指定范围1-n内所有素数的和;
另一个函数int fact(int m)判断一个数是否为素数;
要求在函数sum中调用函数fact判断是否为素数,然后求素数和*/

#include
using namespace std;

int m, n,i,j,k;
int fact(int m)
{
    for (k = 2; k <= n; k++)
    {
        for (i = 2; i <= k; i++)
        {
            if (k % i == 0)
            { 
                break;
                return 0;
            }
        }
        if (k == i)
            return k;
    }
}

void sum(int n)
{
    int SUM = 0;
    
    for (j = 2; j <= n; j++)
    {
        SUM += fact(j);
    }
    cout << "从一到这个数的所有素数之和为" << SUM<int main1()
{
    int num;
    cout << "please enter an intiger" << endl;
    cin >> num;
    sum(num);
    

    system("pause");
    return 0;
}

int main1() //为啥是main1?

这代码错误一大堆呀
1.break后面写return,return不会执行啊,把break删了
2.根据题意,fact只会返回0或1,1代表是素数,你不可以sum+=fact(j),你应该if(fact(j))sum+=j;
3.即使你想让fact能返回素数本身,那也应该return m而不是return k
4.fact函数里形参m根本没用上啊,n又是哪来的
5.for (i = 2; i <= k; i++),i不能等于k呀,否则任何数k%i都能整除
6.主函数是main不是main1
7.写一个函数就测试一个函数,别写了好几百行代码都没编译过,一编译一大堆错误,不麻爪了?