#include<bits/stdc++.h> using namespace std; #define st first #define nd second #define mp make_pair #define pb push_back #define lng length #define all(x) x.begin(), x.end() typedef long long lli; typedef pair<int, int> pii; typedef pair<lli, lli> pll; typedef pair<lli, int> pli; typedef pair<int, lli> pil; int n, licz[4], wyn=0; void solve(int x, int pom) { if(x==0)return; if(pom==1) { if((licz[2]%licz[3]==0)&&(x%licz[2]==0)&&(x>licz[2])&&(licz[2]>licz[3]))wyn++; return; } for(int i=1;i*i<=x;i++) { if(x%i==0) { licz[pom]=i; solve(x-i, pom-1); licz[pom]=x/i; solve(x-x/i, pom-1); } } } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n; solve(n, 3); cout<<wyn<<"\n"; return 0; }
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 38 39 40 41 42 43 44 45 46 47 48 | #include<bits/stdc++.h> using namespace std; #define st first #define nd second #define mp make_pair #define pb push_back #define lng length #define all(x) x.begin(), x.end() typedef long long lli; typedef pair<int, int> pii; typedef pair<lli, lli> pll; typedef pair<lli, int> pli; typedef pair<int, lli> pil; int n, licz[4], wyn=0; void solve(int x, int pom) { if(x==0)return; if(pom==1) { if((licz[2]%licz[3]==0)&&(x%licz[2]==0)&&(x>licz[2])&&(licz[2]>licz[3]))wyn++; return; } for(int i=1;i*i<=x;i++) { if(x%i==0) { licz[pom]=i; solve(x-i, pom-1); licz[pom]=x/i; solve(x-x/i, pom-1); } } } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n; solve(n, 3); cout<<wyn<<"\n"; return 0; } |