गोल्फस्क्रिप्ट, 68 67 62 61 वर्ण
[.]({[.2@{1$1$%{)}{\1$/1$}if}*;;].,*0+{+}*.2$?@@.@+\@)!}do;,(
यह एक अभिव्यक्ति है: यह nस्टैक पर लेता है और स्टैक पर परिणाम छोड़ता है। इसे एक प्रोग्राम में nबदलने के लिए, जो स्टडिन से लेता है और परिणाम को स्टडआउट में प्रिंट करता है, अग्रणी [को प्रतिस्थापित करता है~
इसका दिल [.2@{1$1$%{)}{\1$/1$}if}*;;](28 वर्ण) है जो स्टैक पर शीर्ष नंबर लेता है और (एक अविश्वसनीय अक्षम एल्गोरिथ्म) इसके प्रमुख कारकों की सूची तैयार करता है। सी-शैली छद्मकोड समतुल्य:
ps = [], p = 2;
for (int i = 0; i < n; i++) {
if (n % p == 0) {
ps += p;
n /= p;
}
else p++;
}
0+बस से पहले {+}*विशेष मामले को संभालने के लिए है n==1क्योंकि Golfscript खाली सूची पर एक द्विआधारी आपरेशन तह की तरह नहीं है,।
नॉन-प्राइम फिक्स्चर में से एक 27 है; मैं मानचित्रण (पी विचार करके कार्यक्रम का उपयोग किए बिना इस पाया एक -> एक 2 पी) है, जो एक fixpoint है अगर एक == पी (क -1) / 2 , और छोटे की कोशिश कर रहा a। ( a==1primes का निर्धारण करता है)।
कार्यक्रम के साथ खोज करना एक दूसरा निर्धारण करता है: 30 = (2 + 3 + 5) * 3
परिशिष्ट: सबूत है कि केवल दो गैर-प्राइम फ़िक्सप्वाइंट हैं
संकेतन: दोहराव (A001414) के साथ, sopfr(x)के प्रमुख कारकों का योग है x। (A001222) Omega(x)के प्रमुख कारकों की संख्या है x। तो हिगली उत्तराधिकारी समारोह हैh(x) = sopfr(x) Omega(x)
मान लीजिए कि हमारे पास एक निश्चित बिंदु है N = h(N)जो कि n=Omega(N)primes का एक उत्पाद है ।
N = p_0 ... p_{n-1} = h(N) = n (p_0 + ... + p_{n-1})
मूल संख्या सिद्धांत: में nविभाजित है p_0 ... p_{n-1}, इसलिए w=Omega(n)उन अपराधों के प्रमुख कारक हैं n। Wlog हम उन्हें अंतिम होने के लिए ले जाएगा w। इसलिए हम दोनों पक्षों को विभाजित करके nप्राप्त कर सकते हैं
p_0 ... p_{n-w-1} = p_0 + ... + p_{n-1}
या
p_0 ... p_{n-w-1} = p_0 + ... + p_{n-w-1} + sopfr(n)
यह देखते हुए कि अभाज्य संख्या के सभी p_0के लिए p_{n-w-1}1 से अधिक कर रहे हैं, बढ़ रही है उनमें से किसी एलएचएस आरएचएस की तुलना में अधिक बढ़ जाती है। तो दिए गए के लिए n, हम सभी उम्मीदवार समाधानों की गणना कर सकते हैं।
विशेष रूप से, कोई समाधान नहीं हो सकता है यदि एलएचएस आरएचएस से अधिक "सभी" मुक्त करने के लिए "primes" 2 सेट करता है। यानी अगर कोई समाधान नहीं है
2^{n-w} > 2 (n-w) + sopfr(n)
चूंकि sopfr(n) <= n(केवल n = 4 या n अभाज्य के लिए समानता के साथ), हम कमजोर बयान दे सकते हैं कि कोई निर्धारण नहीं हैं यदि
2^{n-w} > 3 n - 2 w
wनिर्धारित होल्डिंग हम nसंतोषजनक के विभिन्न मूल्यों का चयन कर सकते हैं w=Omega(n)। सबसे छोटा ऐसा nहै 2^w। ध्यान दें कि यदि 2^{n-w}कम से कम 3 है (यानी यदि n-w>1, जो सच है तो n>2) तो स्थिर nरहते हुए wबढ़ने से आरएचएस से अधिक एलएचएस बढ़ेगा। यह भी ध्यान दें कि w>2सबसे छोटी और संभव nअसमानता को लेने के लिए संतुष्ट हैं, और कोई निर्धारण नहीं हैं।
वह हमें तीन मामलों में छोड़ देता है: w = 0और n = 1; w = 1और nप्रमुख है; या w = 2और nअर्द्ध प्रधानमंत्री है।
मामला w = 0। n = 1, तो Nकोई भी प्रधान है।
मामला w = 1। यदि n = 2तब N = 2pऔर हमें आवश्यकता है p = p + 2, जिसका कोई समाधान नहीं है। यदि n = 3फिर हमारे पास pq = p + q + 3और दो समाधान हैं, (p=2, q=5)और (p=3, q=3)। तो n = 5फिर 2^4 > 3 * 5 - 2 * 1, इसलिए वहाँ के साथ आगे कोई समाधान कर रहे हैं w = 1।
मामला w = 2। अगर है n = 4तो N = 4pqहमें चाहिए pq = p + q + 4। इसका पूर्णांक समाधान है p=2, q=6, लेकिन कोई प्रमुख समाधान नहीं है। तो n = 6फिर 2^4 > 3 * 6 - 2 * 2, इसलिए वहाँ के साथ आगे कोई समाधान कर रहे हैं w = 2।
सभी मामले समाप्त हो गए हैं, इसलिए केवल गैर-प्राइम फ़िक्सप्वाइंट 27 और 30 हैं।
highley(1) == 1? किसी के पास कोई प्रमुख कारक नहीं है, इसलिए 4 में परिणामी सूची) है[1, 0], इसलिएhighley(1) == 2जैसा कि मैं इसे देखता हूं।