每次输出到4万多就停止输出
查看原帖
每次输出到4万多就停止输出
967480
jiunichenyin楼主2025/1/26 19:28
#include <iostream>
#include<vector>
#include<cstring>
#include<algorithm>
#include<math.h>
using namespace std;
bool isPrime(int num) {
    if (num <= 3) {
        return num > 1;
    }
    // 不在6的倍数两侧的一定不是质数 n 
    if (num % 6 != 1 && num % 6 != 5) {
        return false;
    }
    int sqrts = sqrt(num);
    for (int i = 5; i <= sqrts; i += 6) {
        if (num % i == 0 || num % (i + 2) == 0) {
            return false;
        }
    }
    return true;
}
int prime[100005],jihao=0;
int main() {
    int n;
    cin >> n;
    for (int i = 2; i <= n; ++i) {
        if (isPrime(i)) {
            prime[jihao++] = i;
        }
    }
    for (int i = 0; i < jihao; ++i) {
        int jishu = 1,cishu=0;
        cout << prime[i] << " ";
        int chushu = pow(prime[i], jishu);
        while (1) {
            if (n >= chushu) {
                cishu += (n / chushu);
                jishu++;
                chushu = pow(prime[i], jishu);
            }
            else
            {
                cout << cishu << endl;
                break;
            }
        }
    }
}
2025/1/26 19:28
加载中...