牛牛的k合因子数

牛牛的k合因子数

http://www.nowcoder.com/questionTerminal/f28c2bd6bc524e0d92b161c44e27a366

图片说明

计算n范围内的质数, 然后计算n范围内的每个数的因数除质数外还有几个因数, 最后进行统计;

#include<bits/stdc++.h>

using namespace std;

bool b[200000];//用来判断因数是否为质数
int d [600];
int sum[200000];
bool a[200000];
int n, m;
int ans[200000];

void fs(int x){
    for (int i = 1; i <= sqrt(x); i ++){
        if (i == sqrt(x)){
            if(b[i] && x %i == 0) sum [x] ++;
        }
        else{
            if(b[i] && x%i == 0) sum [x] ++;
            if(b[x / i] && x % i == 0) sum [x] ++;
        }
    }
}

int main(){
    cin >> n >> m;

    b[1] = false;
    b[2] = false;
    b[3] = false;

    for (int j = 4; j <= n; j ++)
    for (int i = 2; i <= sqrt(j); i ++) if (j % i == 0){
         b[j] = true;
         break;
    }
    for (int i =1; i <= n; i ++) fs(i), ans[sum[i]] ++;
    while (m --){
        int x;
        cin >> x;
        cout << ans[x] <<endl;
    }
    return 0;
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
11-27 10:52
点赞 评论 收藏
分享
威猛的小饼干正在背八股:挂到根本不想整理
点赞 评论 收藏
分享
耀孝女:就是你排序挂了
点赞 评论 收藏
分享
评论
3
收藏
分享
牛客网
牛客企业服务