经典问题,求[1, n]中与m互素的数的和与平方的和
#include <iostream>
#include <vector>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <string>
#include <map>
#include <queue>
using namespace std;
typedef long long ll;
vector<int> primes, factors;
const int maxn = 10000;
const int mod = 1000000007;
ll n, m;
bool vis[maxn + 5];
void init() {
for(int i = 2; i <= maxn; ++i) {
for(int j = i * i; j <= maxn; j += i) {
vis[j] = true;
}
}
for(int i = 2; i <= maxn; ++i)
if(!vis[i]) {
primes.push_back(i);
//printf("prime = %d\n", i);
}
}
void get_factors(ll m) {
factors.clear();
for(int i = 0; i < primes.size(); ++i) {
int p = primes[i];
if(p > m) break;
if(m % p == 0) {