#include <iostream> #include <math.h> using namespace std; int liczbadzielnikow(int n){ int y=sqrt(n); int wynik=1; int ile; for(int i=2; i<=y; i++){ if(n%i==0){ ile=0; while(n%i==0){ //cout << i << " " << n << " " << ile << " " << endl; ile++; n=n/i; } wynik=wynik*(ile+1); y=sqrt(n); } } if(n>1){wynik=wynik*2;} return wynik; } int main () { int n; int k; int tmp; int y; int wynik=0; cin >> n; y=n/6; for(int i=1; i<=y; i++){ if((n%i==0) && (n/i>=7)) { k=liczbadzielnikow((n/i)-1)-2; if (((n/i)-1)%2==0) k--; wynik=wynik+k; // cout << i << " " << k << endl; } } cout << wynik; 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 | #include <iostream> #include <math.h> using namespace std; int liczbadzielnikow(int n){ int y=sqrt(n); int wynik=1; int ile; for(int i=2; i<=y; i++){ if(n%i==0){ ile=0; while(n%i==0){ //cout << i << " " << n << " " << ile << " " << endl; ile++; n=n/i; } wynik=wynik*(ile+1); y=sqrt(n); } } if(n>1){wynik=wynik*2;} return wynik; } int main () { int n; int k; int tmp; int y; int wynik=0; cin >> n; y=n/6; for(int i=1; i<=y; i++){ if((n%i==0) && (n/i>=7)) { k=liczbadzielnikow((n/i)-1)-2; if (((n/i)-1)%2==0) k--; wynik=wynik+k; // cout << i << " " << k << endl; } } cout << wynik; return 0; } |