#include <iostream>
#include <vector>
using namespace std;
vector<int> divisors(int n) {
vector<int> ans;
int i = 1;
for(; i*i < n; i++)
if(n % i == 0) {
ans.push_back(i);
ans.push_back(n/i);
}
if(i*i == n)
ans.push_back(i);
return ans;
}
int main() {
int n;
int ans = 0;
cin >> n;
auto av = divisors(n);
for(auto a : av) {
if(a != 1) {
auto bv = divisors(a-1);
for(auto b : bv) {
if(b > 2 && b != a-1)
ans++;
}
}
}
cout << ans;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | #include <iostream> #include <vector> using namespace std; vector<int> divisors(int n) { vector<int> ans; int i = 1; for(; i*i < n; i++) if(n % i == 0) { ans.push_back(i); ans.push_back(n/i); } if(i*i == n) ans.push_back(i); return ans; } int main() { int n; int ans = 0; cin >> n; auto av = divisors(n); for(auto a : av) { if(a != 1) { auto bv = divisors(a-1); for(auto b : bv) { if(b > 2 && b != a-1) ans++; } } } cout << ans; } |
English