题解:这是洛谷的第28道题目,直接暴力计算、输出即可。
注意
1 . 首先还是对因子进行素性测试(这样会减少很多不必要的步骤)
2 . 然后按照等式筛选素数
源代码:
#include <iostream>
#include <stdlib.h>
#include <math.h>
#include <vector>
using namespace std;
#define DATA_TYPE unsigned long long
DATA_TYPE The_Multiplication_Operator(DATA_TYPE a, DATA_TYPE b, DATA_TYPE mod)
{
DATA_TYPE ans = 0;
while (b)
{
if (b & 1)
{
b--;
ans = (ans + a) % mod;
}
b /= 2;
a = (a + a) % mod;
}
return ans;
}
DATA_TYPE Addition_Operator(DATA_TYPE a, DATA_TYPE b, DATA_TYPE mod)
{
DATA_TYPE ans = 1;
while (b)
{
if (b & 1)
{
ans = The_Multiplication_Operator(ans, a, mod);
}
b /= 2;
a = The_Multiplication_Operator(a, a, mod);
}
return ans;