Gym
来源:互联网 发布:武之舞纪录片全集知乎 编辑:程序博客网 时间:2024/05/16 08:12
手推规律
题意是 : 在 B 进制下 找到所有的 K, 满足所有 K 的十进制下的整数倍的一个数 M ,转化成 B 进制后对应的数位重新排列的数转化成十进制还是 K 的整数倍
推出来的规律 就是 给定的 n 减去 1 的所有因子
#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <string>#include <cmath>#include <set>#include <map>#include <stack>#include <queue>#include <ctype.h>#include <vector>#include <algorithm>#include <sstream>#define PI acos(-1.0)#define in freopen("in.txt", "r", stdin)#define out freopen("out.txt", "w", stdout)using namespace std;typedef long long ll;const int maxn = 100000 + 7, INF = 0x3f3f3f3f;int main() { //cout << 199999998%202 << endl; int n; scanf("%d", &n); int t = n-1; set<int> ans; ans.insert(1); ans.insert(t); for(int i = 2; i*i <= t; ++i) { if(t % i == 0) { ans.insert(i); ans.insert(t/i); } } set<int>::iterator it = ans.begin(); printf("%d", *it); ++it; for(; it != ans.end(); ++it) { printf(" %d", *it); } puts(""); return 0;}