求1-N的正约数集合——倍数法

#include 
#include 
#include 
#define ll long long
using namespace std;
const int maxn = 10000+7;
int main()
{
    int n;
    vector factor[maxn];
    scanf("%d", &n);
    for(int i = 1; i <= n; i++) {
        for(int j = 1; j <= n/i; j++){
            factor[i*j].push_back(i);
        }
    }
    for(int i = 1; i <= n; i++){
        for(int j = 0; j < factor[i].size(); j++){
            printf("%d ",factor[i][j]);
        }
        printf("\n");
    }
    return 0;
}

你可能感兴趣的:(求1-N的正约数集合——倍数法)