เข้ารหัสจำนวนเต็ม

user72349 08/14/2017. 10 answers, 2.243 views
code-golf number primes binary factoring

ให้จำนวนเต็มบวก n > 2 เราแปลงเป็นอาร์เรย์ดังนี้:

  1. ถ้ามันเท่ากับ 2 return array ว่างเปล่า
  2. มิเช่นนั้นให้สร้างอาร์เรย์ของปัจจัยสำคัญ n ทั้งหมดที่เรียงลำดับจากน้อยไปมากจากนั้นแต่ละองค์ประกอบจะแทนที่ด้วยดัชนีในลำดับเลขสำคัญและสุดท้ายจะแปลงแต่ละองค์ประกอบเป็นอาร์เรย์

ตัวอย่างเช่นอนุญาตให้แปลงหมายเลข 46 เป็นอาร์เรย์ ประการแรกให้แปลงเป็นอาร์เรย์ของปัจจัยสำคัญ:

[2, 23] 

หมายเลข 23 เป็นอันดับ 9 ดังนั้นแทนที่ 2 ด้วยอาร์เรย์เปล่าและ 23 ด้วย [9] อาร์เรย์กลายเป็น:

[[], [9]] 

ปัจจัยที่สำคัญของ 9 คือ 3 และ 3 ดังนั้น:

[[], [3, 3]] 

ทำเช่นเดียวกันสำหรับทั้ง 3 :

[[], [[2], [2]]] 

และในที่สุดก็:

[[], [[[]], [[]]]] 

ตอนนี้เพื่อเข้ารหัสมันเราก็จะเปลี่ยนวงเล็บที่เปิดแต่ละอันด้วย 1 และแต่ละวงเล็บปิดด้วย 0 จากนั้นลบศูนย์ที่สิ้นสุดแล้วและปล่อย 1 จากส่วนท้าย นี่คือเลขฐานสองของเรา ใช้ตัวอย่างข้างต้น:

[ ] [ [ [ ] ] [ [ ] ] ]

| | | | | | | | | | | |
| | | | | | | | | | | |
V V V V V V V V V V V V

1 0 1 1 1 0 0 1 1 0 0 0 

ตอนนี้เพียงแค่วางสามศูนย์สุดท้ายและสุดท้าย 1 จำนวนนี้จะกลายเป็น 10111001 ซึ่งมีทศนิยม 185 ตำแหน่ง นั่นคือผลลัพธ์ที่คาดหวัง สังเกตว่าในอาร์เรย์เพื่อวงเล็บการแปลงไบนารีของอาร์เรย์หลักจะไม่รวมอยู่

อินพุต

จำนวนเต็มบวก n มากกว่า 2

เอาท์พุต

n จำนวนเต็มที่เข้ารหัส

กฎและรูปแบบ IO

  • ใช้กฎมาตรฐานแล้ว
  • อินพุทสามารถเป็นสตริงหรือตัวเลข (แต่ในกรณีที่สตริงต้องอยู่ในฐาน 10)
  • เอาท์พุทสามารถเป็นสตริงหรือจำนวน (แต่ในกรณีของสตริงจะต้องอยู่ในฐาน 10)
  • นี่คือ คำตอบที่สั้นที่สุดในไบต์จะชนะ!

กรณีทดสอบ

กรณีทดสอบเพิ่มเติมตามคำขอ

3 ---> 1
4 ---> 2
5 ---> 3
6 ---> 5
7 ---> 6
8 ---> 10
9 ---> 25
10 ---> 11
10000 ---> 179189987
10001 ---> 944359
10002 ---> 183722
10003 ---> 216499
10004 ---> 2863321
10005 ---> 27030299
10006 ---> 93754
10007 ---> 223005
10008 ---> 1402478 

Sandbox

10 Answers


H.PWiz 12/08/2017.

Husk , 35 31 30 29 26 25 24 22 20 19 15 ไบต์

-7 bytes ขอบคุณ @Zgarb!

บันทึกเพิ่มอีก 4 ไบต์โดยทางอ้อมขอบคุณ Zgarb

ḋhΣhgφṁȯ`Jḋ2⁰ṗp 

ทดลองใช้แบบออนไลน์!

ชี้แจง

φ             -- Define a recursive function which calls itself ⁰ and is applied to an Integer
      ṁ       p    -- map then concatenate over its prime factors
             ṗ     --   return their indices into the primes
            ⁰      --   and then recur, applying ⁰ to that number
       ȯ`Jḋ2       --   then surround it between the list [1,0] (binary 2)
    g              -- group adjacent equal elements
   h               -- drop last element (trailing 0s)
  Σ                -- concatenate
 h                 -- drop the last element
ḋ                  -- interpret as base 2 

notjagan 08/15/2017.

Python 2 , 212 177 bytes

 lambda n:int(g(n).rstrip("0")[1:-1],2)
g=lambda n:"1%s0"%"".join(map(g,p(n)))
def p(n,i=0,j=1):
 while n>1:
  j+=1;P=q=1;exec"P*=q*q;q+=1;"*~-j;i+=P%q
  while n%j<1:yield i;n/=j 

ทดลองใช้แบบออนไลน์!

การขาดธาตุที่สำคัญทำให้เกิดการนับไบต์และทำให้ TIO มีจำนวนเฉพาะมากขึ้น ใช้ การตรวจสอบ primality ของ xnor


Python 2 + gmpy2 , 175 ไบต์

 lambda n:int(g(n).rstrip("0")[1:-1],2)
g=lambda n:"1%s0"%"".join(map(g,p(n)))
def p(n,i=0,j=1):
 while n>1:
  j+=1;i+=is_prime(j)
  while n%j<1:yield i;n/=j
from gmpy2 import* 

ทดลองใช้แบบออนไลน์!

รุ่นนี้ไม่ได้หมดเวลาในกรณีทดสอบที่มีขนาดใหญ่ (เช่น 10000 - 10008)


Jonathan Allan 12/08/2017.

วุ้น 22 20 19 ไบต์

-1 ขอบคุณ Erik Outgolfer (เลขศูนย์หางจากทั้งสองฝ่าย, t , มากกว่าจากขวา œr )

ÆfÆC$ÐLŒṘO%3ḟ2Ḋt0ṖḄ 

ลิงค์ monadic ใช้จำนวนเต็มมากกว่า 2 และส่งกลับค่าจำนวนเต็มมากกว่า 0 (2 จะคืน 0 ตามข้อมูลจำเพาะเดิม)

Try it online!

อย่างไร?

นี้เกือบจะทำซ้ำคำอธิบายให้เพียงกับการจัดการลำดับบางอย่างสำหรับการสร้างอาร์เรย์ไบนารี ...

ÆfÆC$ÐLŒṘO%3ḟ2Ḋt0ṖḄ - Link: number n (>=2)
     ÐL             - loop until no more changes occur:
    $               -   last two links as a monad:
Æf                  -     prime factorisation (includes duplicates & vectorises)
  ÆC                -     count primes less than or equal (vectorises)
                    -   ...note for entries of 2 this yields [1]
                    -      then for entries of 1 it yields [], as required
       ŒṘ           - get a Python representation - just like in the OP,
                    -    something like: "[[], [[[]], [[]]]]" (for an input of 46)
         O          - convert to ordinals e.g. [91,91,93,44,32,91,91,91,93,93,44,32,91,91,93,93,93,93]
          %3        - modulo by 3         e.g. [ 1, 1, 0, 2, 2, 1, 1, 1, 0, 0, 2, 2, 1, 1, 0, 0, 0, 0]
            ḟ2      - filter discard twos e.g. [ 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0]
              Ḋ     - dequeue             e.g. [ 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0]
               t0   - strip zeros         e.g. [ 1, 0, 1, 1, 1, 0, 0, 1, 1]
                 Ṗ  - pop                 e.g. [ 1, 0, 1, 1, 1, 0, 0, 1]
                  Ḅ - binary to decimal   e.g. 185 

JungHwan Min 08/14/2017.

Mathematica, 125 119 bytes

Flatten[#//.NO , and 2 to {1, 0} . แปลงดัชนีที่สำคัญเป็น {1, index, 0} และ 2 ถึง {1, 0} 

ลองใช้บน Wolfram Sandbox

Usage:

f = Flatten[ ...

f[10008] 

1402478


Erik the Outgolfer 08/14/2017.

วุ้น 35 ไบต์

ÆfẎW€ÆC2,“”y¹ß€Ṇ?
ÇŒṘḊ⁾][iЀḟ0t1Ṗ’Ḅ 

ทดลองใช้แบบออนไลน์!


cole 08/14/2017.

J, 74 73 66 bytes

3 :'#.(}.~ >:@i.&1)&.|.2+}.;<@(_2,~_1,[:>:[:_1&p:q:) ::<"0@;^:_ y' 

ทดลองใช้แบบออนไลน์!

นี่เป็นปัญหาที่แท้จริงที่ทำให้ต้องเล่นกอล์ฟเป็นอย่างมาก (เช่นการลบคำจำกัดความของฟังก์ชันที่ชัดเจน) ฉันคิดว่ามวยที่ฉันได้ทำคือโดยเฉพาะอย่างยิ่งสิ่งที่นำมา bytecount ตั้งแต่ฉันไม่ทราบจริงๆว่าฉันกำลังทำอยู่ที่นั่น (มันเป็นจำนวนมากของการทดลองและข้อผิดพลาด) นอกจากนี้ฉัน pretty แน่ใจว่ามีบางตัวที่ฉันลืมเกี่ยวกับ (เช่นฉันรู้สึกเหมือน _2,~_1, อาจมีในตัว)

คำอธิบาย (ungolfed)

คำนำ

นั่งเงียบ ๆ เพราะนี่ไม่ใช่คำอธิบายสั้น ๆ แดกดันภาษาสั้นได้รับการจับคู่กับคน verbose

ฉันจะแยกออกเป็นสองสามฟังก์ชั่น

encode  =. 3 : '<@(_2,~_1, [: >: [: _1&p: q:) ::<"0@;^:_ y'
convert =. 3 : '2 + }. ; y'
drop    =. (}.~ >:@i.&1)&.|.
decode  =. #. 
  • encode encodes จำนวนเต็มโดยใช้ _1 และ _2 แทน [และ]
  • convert แปลงรายการ _1 และ _2 ลงในรายการ 1 และ 0
  • drop ลดลงเหลือ 1 และ zero ท้าย
  • decode แปลงจากรายการไบนารีไปเป็นตัวเลข

ฉันจะเดินผ่านสายตัวอย่างสำหรับ 46 ซึ่งแสดงในรูปแบบ ungolfed เสร็จเรียบร้อยแล้ว

decode drop convert encode 46
185 

เปลี่ยนเป็นรหัส

มีอะไรให้อธิบายมากทีเดียวที่นี่

3 : '<@(_2,~_1, [: >: [: _1&p: q:) ::< "0@;^:_ y'
                                           ^:_      Do until result converges
                                          ;          Raze (remove all boxing)
                                       "0            For each
                               q:                     Factorize
                         _1&p:                        Get index of prime
                   >:                                 Add 1 (J zero-indexes)
            _1,                                       Prepend -1
        _2,~                                          Append -2
     <                                                Box resulting array
                                   ::                If there is an error
                                     <                Box the element 

โปรดทราบว่านิยามฟังก์ชันที่ชัดเจน 3 : '[function]' ประเมินฟังก์ชันเหมือนกับว่าใช้ REPL กับอาร์กิวเมนต์ที่ถูกต้องแทนทุกๆตัวอย่างของ y (ซึ่งหมายความว่าฉันสามารถหลีกเลี่ยงการใช้ caps ( [: , atops ( @ ) และ ats ( @: :) ด้วยค่าใช้จ่ายเพียงไม่กี่ไบต์)

นี่คือสิ่งที่ดูเหมือนว่าสำหรับการทำซ้ำแต่ละครั้งที่ป้อนข้อมูลจาก 46

┌─────────┐    ┌──┬─────┬─────────┬──┐    ┌──┬──┬──┬──┬───────┬───────┬──┬──┐
│_1 1 9 _2│ => │_1│_1 _2│_1 2 2 _2│_2│ => │_1│_1│_2│_1│_1 1 _2│_1 1 _2│_2│_2│ =>└─────────┘    └──┴─────┴─────────┴──┘    └──┴──┴──┴──┴───────┴───────┴──┴──┘

┌──┬──┬──┬──┬──┬─────┬──┬──┬─────┬──┬──┬──┐    
│_1│_1│_2│_1│_1│_1 _2│_2│_1│_1 _2│_2│_2│_2│ => the final iteration is just every
└──┴──┴──┴──┴──┴─────┴──┴──┴─────┴──┴──┴──┘    value in its own box 

ฟังก์ชั่นนี้ใช้ประโยชน์จากอาการไม่พึงประสงค์ ( :: เพื่อทำรังค่าใน "วงเล็บ" (วงเล็บใช้ที่นี่คือ -1 และ -2) โดยทั่วไปแล้วทุกครั้งที่เราแยกแยะและแปลงเป็นดัชนีตัวเลขที่สำคัญ _1 จะถูกเพิ่มเข้าไปและ _2 จะถูกผนวกเข้าซึ่งทำหน้าที่เป็นวงเล็บ เมื่อฟังก์ชันถูกเรียกใช้ในองค์ประกอบเหล่านี้มันจะส่งกลับค่าเป็น - เนื่องจาก q: จะเกิดข้อผิดพลาดในการพยายามคิดเลขลบ ก็โชคดีที่ q: not ผิดพลาดในการพยายามที่จะ factorize 1 และแทนที่จะส่งกลับอาร์เรย์ที่ว่างเปล่า (ตามที่ต้องการ)

แปลง

3 : '2 + }. ; y'
            ;     Raze (remove boxing)
         }.       Behead (remove head)
     2 +          Add 2 

แปลงเป็นจำนวนมากที่เรียบง่าย เพียงนำมวยทั้งสองรวมทั้งองค์ประกอบแรกแล้วแปลงทุกอย่างเป็น 1 วินาทีและ 0 วินาที (โดยการเพิ่ม 2)

Drop

(}.~ >:@i.&1)&.|.
             &.|.  Reverse, apply the left function, and then undo
 }.~ >:@i.&1        Drop the leading zeroes and first 1
        i.&1         Index of first one
     >:              Add 1
 }.~                 Drop 

รายการนี้กลับรายการค้นพบรายการแรกแล้วลดค่าทั้งหมดลงไปที่รายการนั้นจากนั้นกลับรายการอีกครั้ง

ถอดรหัส

ถอดรหัสเป็นฟังก์ชัน built-in #. ซึ่งจะมีรายการของ 1s และ 0s และแปลงเป็นเลขฐานสอง


PunPun1000 08/15/2017.

Retina , 244 227 225 ไบต์

+%(G`
\d+
$*0¶$&$*
+`^00(0+)
0$1¶$0
A`^(00+?)\1+$
^0+
$0;1
+`(1+)¶0+(?=¶)
$0;1$1
+`¶(11+?)(\1)*$
¶$1¶1$#2$*1
1$

m`^11$
[]
m`^1+
[¶$.0$*0¶]
+s`(0+);(1+)(.+¶)\1¶
$1;$2$3$2¶
0+;1+¶

)`1+
$.0
T`[]¶`10_
10+$

1
01
+`10
011
^0+

1 

ทดลองใช้แบบออนไลน์!

นี่คือแนวทางการส่งตรงตามขั้นตอนที่แสดงในคำถาม การสร้างดัชนีจุดเด่นคือความซับซ้อนที่อธิบายได้จึงจะหมดเวลาสำหรับปัจจัยการผลิตขนาดใหญ่

คำอธิบาย:

+%(G`                Repeatedly apply on each line:
\d+                      If the line is a number, convert it to unary 0s and 1s
$*0¶$&$*
+`^00(0+)                Generate all prefixes of the zeros greater than 1
0$1¶$0
A`^(00+?)\1+$            Remove non-prime strings of zeros
^0+                      Index the first zero set (00) as 1
$0;1
+`(1+)¶0+(?=¶)           Index the rest of the zeroes as their prime index
$0;1$1
+`¶(11+?)(\1)*$          Compute prime factors of input value
¶$1¶1$#2$*1
1$                       Remove the 1 factor (not really prime)

m`^11$                   Turn all 2 prime factors to []
[]
m`^1+                    Surround all non-2 prime factors in brackets
[¶$.0$*0¶]
+s`(0+);(1+)(.+¶)\1¶     Convert non-2 prime factors to their index
$1;$2$3$2¶
0+;1+¶                   Remove the list of primes

)`1+                     Return all primes back to decimal ready to be repeated
$.0
T`[]¶`10_            Then convert all [ to 1 and ] to 0, and remove linefeeds
10+$                 Remove the final 1 and trailing zeroes

1                    Convert from binary to unary
01
+`10
011
^0+

1                    Convert from unary to decimal 

Laikoni 12/10/2017.

Haskell , 162 160 155 ไบต์

 sum.zipWith((*).(2^))[0..].tail.snd.span(<1).(r%)
r=zip[1..][x|x<-[2..],all((>0).mod x)[2..x-1]]
_%1=[]
((i,q):p)%n|mod n q<1=r%div n q++0:r%i++[1]|1<3=p%n 

ทดลองใช้แบบออนไลน์!

Explanation:

r=zip[1..][x|x<-[2..],all((>0).mod x)[2..x-1]] หมายถึงรายการที่ไม่มีที่สิ้นสุดของ tuples ของจำนวนเวลาและดัชนีของพวกเขา : [(1,2),(2,3),(3,5),(4,7),(5,11),(6,13), ...]

ฟังก์ชัน (%) ใช้รายการนี้ r และ n จำนวนและแปลงตัวเลขเป็นตัวแทนอาร์เรย์ของอาร์เรย์กลับกัน นี้จะกระทำโดยการก้าวผ่าน r จนกว่าเราจะพบที่สำคัญที่แบ่ง n จากนั้นเราจะทำซ้ำ recursively แทนของดัชนีของนายกนี้และใส่ไว้ใน 0 และ 1 และ prepend แทนของ n หารด้วยที่สำคัญ.

สำหรับ n=46 จะให้รายการ [0,0,0,1,1,0,0,1,1,1,0,1] จากนั้นศูนย์นำ ( snd.span(<1) ) และ ถัดไป 1 ( tail ) จะลดลง หลังจากนั้นรายการจะถูกแปลงเป็นเลขทศนิยมโดยการเรียงลำดับตามตัวอักษรคูณกับรายการของพลังของทั้งสองและสรุปผลรายการ: sum.zipWith((*).(2^))[0..]


Fabian 08/24/2017.

JavaScript, 289 ไบต์

ไบต์คือผลรวมของรหัส JavaScript ที่ไม่มีการเปิดเผยตัวตนหลังจากที่เครื่องหมายจุลภาค (ซึ่งถูกแทรกเพื่อการจัดรูปแบบและอ่านได้ดียิ่งขึ้น) (256 ไบต์) และอักขระเพิ่มเติมสำหรับสวิตช์บรรทัดคำสั่งซึ่งจำเป็นต้องใช้เมื่อใช้ Chrome (33 ไบต์)

'use strict'
var f=(n,i=2,r=[])=>n>1?n%i?f(n,i+1,r):f(n/i,i,r.concat(i)):r,
c=(p,r=1,i=2)=>ic(a),
s=a=>a.reduce((r,e)=>r+s(e),'1')+' ',
o=i=>+('0b'+s(f(i).map(h)).trim().replace(/ /g,'0').slice(1,-1)) 

และอีกต่อไปรุ่นที่สามารถอ่านได้ดีขึ้น:

'use strict';
const f = (n,i=2,r=[]) => n>1 ? n%i ? f(n,i+1,r) : f(n/i,i,r.concat(i)) : r;
const c = (p,r=1,i=2) => i

c(i); const s = a => a.reduce((r,e) => r+s(e),'1')+' '; const o = i => +('0b'+s(f(i).map(h)).trim().replace(/ /g,'0').slice(1,-1));

คำอธิบายสั้น ๆ :

f เป็นอัลกอริธึมแฟคเตอเรชันแบบหางยาวแบบสมการ

c นับที่ตำแหน่ง r เลขสำคัญ p เกิดขึ้นในลำดับของตัวเลขที่สำคัญและส่งกลับค่า [] (ถ้า p=2 และ r=1 ) หรือ factorizes และกระบวนการต่อไป r โดยวิธีการทวนซ้ำ

h เป็นฟังก์ชันผู้ช่วยขนาดเล็กซึ่งโชคร้ายเป็นสิ่งที่จำเป็นเนื่องจาก map เรียกใช้ฟังก์ชันที่ให้มากับ numberOfCurrentElement เป็นตัวที่สองและเป็นอาร์กิวเมนต์ที่สามดังนั้นแทนที่ค่าเริ่มต้นที่ระบุไว้ใน c ถ้าเราจะส่งผ่านฟังก์ชันนี้โดยตรง ได้รับหลังจากหลุมนี้แทนที่ h โดยคำจำกัดความของมันจะไม่กี่ไบต์อีกต่อไป)

s แปลงอาร์เรย์ที่สร้างขึ้นเป็นสตริง เราใช้ blank แทน 0 เพื่อให้เราสามารถใช้ trim() ใน o

o คือฟังก์ชันที่จะเรียกว่ามีค่าอินพุต i ซึ่งจะส่งกลับผลลัพธ์ มันสร้างการแทนสตริงไบนารีที่กำหนดโดยข้อกำหนดและแปลงเป็นจำนวน (ทศนิยม)

Edit: Chrome ต้องเริ่มต้นด้วย chrome --js-flags="--harmony-tailcalls" เพื่อให้การเพิ่มประสิทธิภาพของการ chrome --js-flags="--harmony-tailcalls" หาง (ดู https://v8project.blogspot.de/2016/04/es6-es7-and- beyond.html ) นอกจากนี้ยังต้องใช้โหมดที่เข้มงวด

การทดสอบต่อไปนี้แสดงให้เห็นว่าการคำนวณบิตช้าสำหรับค่าบางอย่าง (ที่ยาวที่สุดคือมากกว่าหกวินาทีสำหรับ 10007 ในคอมพิวเตอร์ของฉัน) น่าสนใจโดยไม่มีการเพิ่มประสิทธิภาพของหาง recursion การคำนวณได้เร็วขึ้นมาก (เกี่ยวกับปัจจัย 5) เมื่อไม่มี stack overflow

for (let i=3; i<=10008; i==10 ? i=10000 : ++i) {
    let time = new Date().getTime();
    let val = o(i);
    time = new Date().getTime() - time;
    document.write(i + ': ' + o(i) + ' (computed in ' + time + ' ms)
'); }

DLosc 10/30/2018.

tinylisp , 209 bytes

(load library
(d [(q((N)(map(q((P)([(length(filter prime?(1to P))))))(reverse(prime-factors N
(d B(q((L)(c 1(insert-end 0(foldl concat(map B L
(d T(q((N)(if(mod N 2)(/ N 2)(T(/ N 2
(q((N)(T(from-base 2(t(B([ N 

บรรทัดสุดท้ายคือฟังก์ชันที่ไม่มีชื่อที่คำนวณการเข้ารหัสที่ระบุ ทดลองใช้แบบออนไลน์!

รุ่นก่อนเล่นกอล์ฟ

นี่คือรหัสที่ฉันมีก่อนที่จะเริ่มเล่นกอล์ฟลง:

(load library)

(def prime-index
 (lambda (P)
  (length (filter prime? (1to P)))))

(def to-list
 (lambda (N)
  (map to-list
   (map prime-index
    (reverse (prime-factors N))))))

(def to-bits
 (lambda (L)
  (cons 1
   (insert-end 0
    (foldl concat
     (map to-bits L))))))

(def trim
 (lambda (N)
  (if (mod N 2)
   (div2 N 2)
   (trim (div2 N 2)))))

(def encode
 (lambda (N)
  (trim
   (from-base 2
    (tail (to-bits (to-list N))))))) 

HighResolutionMusic.com - Download Hi-Res Songs

1 Ariana Grande

7 Rings flac

Ariana Grande. 2019. Writer: Tayla Parx;Kimberly Krysiuk;Njomza Vitia;Scootie;Tommy Brown;Richard Rogers;Oscar Hammerstein II;Crazy Mike;Victoria Monét;Ariana Grande.
2 Alan Walker

Lily flac

Alan Walker. 2018. Writer: Alan Walker;Lars Kristian Rosness;Magnus Bertelsen;K-391;Didrik Handlykken;Marcus Arnbekk.
3 Alec Benjamin

Let Me Down Slowly flac

Alec Benjamin. 2019. Writer: Alec Benjamin;Sir Nolan;Michael Pollack.
4 Alan Walker

Lost Control flac

Alan Walker. 2018. Writer: Alan Walker;Thomas Troelsen;Mood Melodies;Sorana;Fredrik Borch Olsen;Magnus "Magnify" Martinsen.
5 Skylar Grey

Everything I Need flac

Skylar Grey. 2018. Writer: Elliott Taylor;Rupert Gregson-Williams;Skylar Grey.
6 Westlife

Hello My Love flac

Westlife. 2019. Writer: Steve Mac;Ed Sheeran.
7 Conor Maynard

Way Back Home (Sam Feldt Edit) flac

Conor Maynard. 2018. Writer: Ji Hye Lee;Shaun.
8 Post Malone

Sunflower flac

Post Malone. 2018. Writer: Carl Rosen;Louis Bell;Billy Walsh;Carter Lang;Swae Lee;Post Malone.
9 Alan Walker

Different World flac

Alan Walker. 2018. Writer: Shy Nodi;Alan Walker;Fredrik Borch Olsen;James Njie;Marcus Arnbekk;Gunnar Greve Pettersen;K-391;Corsak;Shy Martin;Magnus Bertelsen.
10 Sam Smith

Fire On Fire flac

Sam Smith. 2018. Writer: Steve Mac;Sam Smith.
11 The Chainsmokers

Hope flac

The Chainsmokers. 2018. Writer: Kate Morgan;Chris Lyon;Alex Pall;Andrew Taggart.
12 Normani

Dancing With A Stranger flac

Normani. 2019. Writer: Mikkel S. Eriksen;Tor Hermansen;Jimmy Napes;Normani;Sam Smith.
13 Slushii

Never Let You Go flac

Slushii. 2019. Writer: Sofía Reyes;Slushii;Aviella Winder.
14 Imagine Dragons

Believer flac

Imagine Dragons. 2019. Writer: Dan Reynolds;Lil Wayne;Wayne Sermon;Ben McKee;Daniel Platzman;Robin Fredriksson;Mattias Larsson;Justin Tranter.
15 Skrillex

Face My Fears flac

Skrillex. 2019. Writer: Poo Bear;Skrillex;Utada Hikaru.
16 Mike Perry

Runaway flac

Mike Perry. 2019. Writer: Andreas Wiman;Dimitri Vangelis;Richard Müller;Sasha Rangas;Stefan Van Leijsen;Mike Perry.
17 Alan Walker

I Don't Wanna Go flac

Alan Walker. 2018.
18 Gesaffelstein

Lost In The Fire flac

Gesaffelstein. 2019. Writer: Ahmad Balshe;Nate Donmoyer;Gesaffelstein;DaHeala;The Weeknd.
19 Hozier

Almost (Sweet Music) flac

Hozier. 2019. Writer: Hozier.
20 Matt Wertz

Fences flac

Matt Wertz. 2019.

Related questions

Hot questions

Language

Popular Tags