C++ 小奇的幸运数字问题

问题遇到的现象和发生背景

编程书上看到的。
我太弱了QAQ
题目描述
小奇有一个幸运数字,幸运数字为给定一个整数x,其前k小约数的和。
输入
两个整数x和k
输出
一个整数表示答案
样例输入
2 2
样例输出
3

问题相关代码,请勿粘贴截图
#include<iostream>
#include<cstring>
#include<string>
#include<iomanip>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstdlib>
#include<queue>
#include<deque>
using namespace std;
int main()
{
    int m,n,f,a=-1;
    cin>>m>>n;
    for(int i=0;i<m;i++)
    {
        if(m%i==0)
        {
            f++;
            a+=i;
        }
    }
    if(n>f)
    {
        for(int i=0;i<f;i++)
        {
            cout<<a;
        }
    }
    else
    {
        for(int i=0;i<n;i++)
        {
            cout<<a;
        }
    }
    return 0;
}


运行结果及报错内容

一直输出不出来,不鸡丢怎么肥四

1、f没初始化
2、第一个for循环的i不能从0开始,因为要进行m%i。不能对0求余