Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void foo (int n){
- vector <int>largest_divisor(n,0);
- vector <int> n_divisor(n,0);//number of divisors
- largest_divisor[1]=1;
- for (int i=2; i<n; i++){ //sieve
- if (largest_divisor[i]==0){
- for (int j=i; j<n; j+=i )
- largest_divisor[j]=i;
- }
- }
- n_divisor[1]=1;
- for (int i=2; i<n; i++){
- int p=largest_divisor[i];
- int pk=1; // p^k in k-th inner iteration
- int div=1; //number of divisors of p^k
- int m=i;
- do{
- pk*=p;
- div+=pk;
- m/=p;
- }while (m%p==0);
- n_divisor[i] = div * n_divisor[m];
- }
- auto f = [&](int x) { return n_divisor[x]-x -1; }; //number of proper divisors-1
- //look for solutions
- for (int i=2; i<n; i++){
- if ( f(i)<=i ){
- if (f(f(i))==i){
- cout << i << " "<<f(i) <<endl;
- }
- }
- }
- }
- /* results < 100'000'000
- 75 48
- 195 140
- 1648 1575
- 1925 1050
- 2295 2024
- 6128 5775
- 16587 8892
- 20735 9504
- 75495 62744
- 206504 186615
- 219975 196664
- 309135 199760
- 507759 266000
- 544784 526575
- 549219 312620
- 817479 573560
- 1057595 587460
- 1159095 1139144
- 1331967 1081184
- 1341495 1173704
- 1348935 1208504
- 1459143 1236536
- 1524831 1233056
- 1763019 1140020
- 1902215 1000824
- 2142945 2102750
- 2226014 1921185
- 2421704 2140215
- 2576945 1279950
- 2681019 2036420
- 3010215 2312024
- 3123735 2198504
- 3220119 2171240
- 3676491 2958500
- 4282215 4012184
- 5644415 2580864
- 6446325 5088650
- 7509159 5416280
- 7890575 4311024
- 9345903 6081680
- 10106504 9247095
- 10925915 7460004
- 12251679 6618080
- 12900734 12500865
- 13693959 8713880
- 16247745 12146750
- 16381925 7875450
- 18845855 8829792
- 26502315 22559060
- 26525415 23379224
- 27862695 27735704
- 28206815 14371104
- 31213899 13922100
- 31356314 23939685
- 32014575 28219664
- 37291625 22013334
- 41950359 26409320
- 42125144 40818855
- 43321095 34093304
- 52389315 49217084
- 58354119 33299000
- 69090615 66086504
- 70112175 64045904
- 80870615 37324584
- 84854315 41137620
- 85141719 52026920
- 87689415 66275384
- 87802407 76011992
- 88567059 61423340
- 93423519 62252000
- 96751395 94970204
- 97389039 52601360
- 99735705 93993830
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement