#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; } |
English