fork download
  1. MODVAL = 10**9 + 7
  2.  
  3. def gcd(a, b):
  4. return a if b==0 else gcd(b, a%b)
  5.  
  6. n = int(input())
  7. a = [-1]+[int(w) for w in input().split()]
  8.  
  9. dp = [[0]*101 for i in range(n+1)]
  10.  
  11. for i in range(1, n+1):
  12. dp[i][a[i]] = 1
  13. for j in range(1, i):
  14. if a[i]<=a[j]:
  15. continue
  16. for k in range(a[j]+1):
  17. g = gcd(a[i], k)
  18. dp[i][g] += dp[j][k]
  19. if dp[i][g]>=MODVAL:
  20. dp[i][g] -= MODVAL
  21.  
  22. ans = 0
  23. for i in range(1, n+1):
  24. ans += dp[i][1]
  25. if ans>=MODVAL:
  26. ans -= MODVAL
  27. print(ans)
Success #stdin #stdout 0.02s 27720KB
stdin
3
1 2 3
stdout
5