a53

NREcou

a53
Apr 23rd, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.05 KB | None | 0 0
  1. #include<fstream>
  2. #define MOD 1000000017
  3. using namespace std;
  4. ifstream fin("nrecou.in");
  5. ofstream fout("nrecou.out");
  6. long long n;
  7. long long Power(long long b)
  8. {
  9. long long p=1, x=10;
  10. while(b)
  11. {
  12. if(b%2)
  13. p=(p*x)%MOD;
  14. x=(x*x)%MOD;
  15. b=b/2;
  16. }
  17. return (p*9)%MOD;
  18. }
  19. long long Solutie(long long n)
  20. {
  21. long long p, v1[20000], v2[20000], s=0;
  22. int i, j, nv1, nv2;
  23. nv1=1;
  24. v1[1]=1;
  25. nv2=0;
  26. for(p=2;p*p<=n;p++)
  27. if(n%p==0)
  28. {
  29. nv1++;
  30. v1[nv1]=p;
  31. nv2++;
  32. v2[nv2]=n/p;
  33. }
  34. if(v1[nv1]==v2[nv2])
  35. nv2--;
  36. for(i=nv2;i>=1;i--)
  37. {
  38. nv1++;
  39. v1[nv1]=v2[i];
  40. }
  41. v2[1]=9;
  42. s=v2[1];
  43. for(i=2;i<=nv1;i++)
  44. {
  45. v2[i]=Power(v1[i]-1);
  46. for(j=1;j<=i-1;j++)
  47. if(v1[i]%v1[j]==0)
  48. v2[i]=(v2[i]+MOD-v2[j])%MOD;
  49. s+=v2[i];
  50. s%=MOD;
  51. }
  52. return s;
  53. }
  54. int main()
  55. {
  56. fin>>n;
  57. fout<<Solutie(n);
  58. return 0;
  59. }
Add Comment
Please, Sign In to add comment