AHMed3290mljdh commited on
Commit
217c0c0
·
verified ·
1 Parent(s): 99a27b5

حسنا عوض ان تظهر لك الشاشه البديه الخاصه بان الموقع في متجر التطبيقات لا اوده عند النقرع الزر مباشره سيعمل هذا الكود ضبط مكانه وطريقته وايضا اجعل الرسائل في اطور جميله <a href="https://drive.google.com/uc?export=download&id=1VFM68UW6dB_BpL8akS4BO964CvBBZbt6" download style="display:inline-block; padding:12px 24px; background:#28a745; color:#fff; text-decoration:none; border-radius:8px; font-weight:bold;"> تحميل التطبيق (APK) </a> - Initial Deployment

Browse files
Files changed (2) hide show
  1. README.md +7 -5
  2. index.html +361 -19
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Gl
3
- emoji: 🔥
4
- colorFrom: indigo
5
- colorTo: pink
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: gl
3
+ emoji: 🐳
4
+ colorFrom: purple
5
+ colorTo: green
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite
10
  ---
11
 
12
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
index.html CHANGED
@@ -1,19 +1,361 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="ar" dir="rtl">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>فحص الأعداد الأولية - Prime Checker</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
9
+ <style>
10
+ @import url('https://fonts.googleapis.com/css2?family=Tajawal:wght@400;500;700;900&display=swap');
11
+
12
+ body {
13
+ font-family: 'Tajawal', sans-serif;
14
+ background-color: #f0fdf4;
15
+ }
16
+
17
+ .gradient-bg {
18
+ background: linear-gradient(135deg, #10b981 0%, #059669 100%);
19
+ }
20
+
21
+ .number-input {
22
+ transition: all 0.3s ease;
23
+ }
24
+
25
+ .number-input:focus {
26
+ box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.3);
27
+ }
28
+
29
+ .result-card {
30
+ transition: all 0.5s ease;
31
+ opacity: 0;
32
+ height: 0;
33
+ overflow: hidden;
34
+ }
35
+
36
+ .result-card.show {
37
+ opacity: 1;
38
+ height: auto;
39
+ }
40
+
41
+ .prime {
42
+ background-color: #d1fae5;
43
+ border-color: #10b981;
44
+ }
45
+
46
+ .not-prime {
47
+ background-color: #fee2e2;
48
+ border-color: #ef4444;
49
+ }
50
+
51
+ .history-item {
52
+ transition: all 0.2s ease;
53
+ }
54
+
55
+ .history-item:hover {
56
+ transform: translateX(-5px);
57
+ }
58
+
59
+ .android-btn:hover {
60
+ transform: translateY(-2px);
61
+ box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
62
+ }
63
+
64
+ .pulse {
65
+ animation: pulse 2s infinite;
66
+ }
67
+
68
+ @keyframes pulse {
69
+ 0% {
70
+ transform: scale(1);
71
+ }
72
+ 50% {
73
+ transform: scale(1.05);
74
+ }
75
+ 100% {
76
+ transform: scale(1);
77
+ }
78
+ }
79
+ </style>
80
+ </head>
81
+ <body class="min-h-screen">
82
+ <!-- Android Download Banner -->
83
+ <div class="gradient-bg text-white py-3 px-4 flex items-center justify-between shadow-lg">
84
+ <div class="flex items-center space-x-2 space-x-reverse">
85
+ <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="#a7f3d0">
86
+ <path d="M3 18a1 1 0 0 0 1 1h2v2a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-2h2v2a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-2h2a1 1 0 0 0 1-1v-9H3v9zm16-13h-4V3a1 1 0 0 0-1-1h-1a1 1 0 0 0-1 1v2H8V3a1 1 0 0 0-1-1H6a1 1 0 0 0-1 1v2H1v4h18V5z"/>
87
+ </svg>
88
+ <span class="font-bold text-lg">تطبيق الأعداد الأولية</span>
89
+ </div>
90
+ <a href="https://drive.google.com/uc?export=download&id=1VFM68UW6dB_BpL8akS4BO964CvBBZbt6"
91
+ download
92
+ class="bg-white text-emerald-700 font-bold py-2 px-6 rounded-full flex items-center space-x-2 space-x-reverse hover:bg-emerald-50 transition-all pulse">
93
+ <i class="fas fa-download"></i>
94
+ <span>حمّل التطبيق الآن (APK)</span>
95
+ </a>
96
+ </div>
97
+
98
+ <!-- Main Content -->
99
+ <div class="container mx-auto px-4 py-8 max-w-4xl">
100
+ <!-- Header -->
101
+ <div class="text-center mb-12">
102
+ <h1 class="text-4xl font-bold text-emerald-800 mb-3">فحص الأعداد الأولية</h1>
103
+ <p class="text-gray-600 text-lg">أدخل أي عدد صحيح موجب لمعرفة إذا كان أولياً أم لا</p>
104
+ </div>
105
+
106
+ <!-- Input Section -->
107
+ <div class="bg-white rounded-xl shadow-lg p-6 mb-8">
108
+ <div class="flex flex-col md:flex-row items-center justify-between gap-4">
109
+ <input type="number" id="numberInput" class="number-input flex-grow border-2 border-gray-200 rounded-lg py-3 px-4 text-xl focus:outline-none focus:border-emerald-500" placeholder="أدخل الرقم هنا..." min="1">
110
+ <button id="checkBtn" class="gradient-bg text-white font-bold py-3 px-8 rounded-lg text-lg hover:bg-emerald-700 transition-all w-full md:w-auto">
111
+ <i class="fas fa-search mr-2"></i> تحقق من الرقم
112
+ </button>
113
+ </div>
114
+ </div>
115
+
116
+ <!-- Result Section -->
117
+ <div id="resultCard" class="result-card rounded-xl shadow-lg p-6 mb-8 border-2">
118
+ <div class="flex items-center justify-between">
119
+ <h3 class="text-xl font-bold" id="resultTitle">النتيجة</h3>
120
+ <span id="primeBadge" class="px-3 py-1 rounded-full text-sm font-bold hidden"></span>
121
+ </div>
122
+ <p class="mt-3 text-gray-700" id="resultText"></p>
123
+ <div class="mt-4" id="factorsContainer"></div>
124
+ </div>
125
+
126
+ <!-- Features Section -->
127
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-6 mb-8">
128
+ <div class="bg-white rounded-xl shadow-lg p-6">
129
+ <div class="text-emerald-500 mb-3">
130
+ <i class="fas fa-bolt text-2xl"></i>
131
+ </div>
132
+ <h3 class="font-bold text-lg mb-2">فحص سريع</h3>
133
+ <p class="text-gray-600">تحقق من أي رقم في ثوانٍ باستخدام خوارزمية متطورة</p>
134
+ </div>
135
+ <div class="bg-white rounded-xl shadow-lg p-6">
136
+ <div class="text-emerald-500 mb-3">
137
+ <i class="fas fa-history text-2xl"></i>
138
+ </div>
139
+ <h3 class="font-bold text-lg mb-2">سجل الأرقام</h3>
140
+ <p class="text-gray-600">احتفظ بسجل الأرقام التي قمت بفحصها مسبقاً</p>
141
+ </div>
142
+ <div class="bg-white rounded-xl shadow-lg p-6">
143
+ <div class="text-emerald-500 mb-3">
144
+ <i class="fas fa-chart-pie text-2xl"></i>
145
+ </div>
146
+ <h3 class="font-bold text-lg mb-2">تحليل العوامل</h3>
147
+ <p class="text-gray-600">احصل على تحليل كامل لعوامل الرقم المدخل</p>
148
+ </div>
149
+ </div>
150
+
151
+ <!-- History Section -->
152
+ <div class="bg-white rounded-xl shadow-lg p-6">
153
+ <div class="flex items-center justify-between mb-4">
154
+ <h2 class="text-xl font-bold text-emerald-800">سجل الفحوصات</h2>
155
+ <button id="clearHistoryBtn" class="text-red-500 hover:text-red-700">
156
+ <i class="fas fa-trash-alt mr-1"></i> مسح السجل
157
+ </button>
158
+ </div>
159
+ <div id="historyList" class="space-y-2">
160
+ <!-- History items will be added here dynamically -->
161
+ <p class="text-gray-500 text-center py-4" id="emptyHistoryText">لا يوجد سجل للفحوصات بعد</p>
162
+ </div>
163
+ </div>
164
+ </div>
165
+
166
+ <!-- Footer -->
167
+ <footer class="gradient-bg text-white py-6 mt-12">
168
+ <div class="container mx-auto px-4 text-center">
169
+ <div class="flex justify-center space-x-6 space-x-reverse mb-4">
170
+ <a href="#" class="hover:text-emerald-200"><i class="fab fa-facebook-f text-xl"></i></a>
171
+ <a href="#" class="hover:text-emerald-200"><i class="fab fa-twitter text-xl"></i></a>
172
+ <a href="#" class="hover:text-emerald-200"><i class="fab fa-instagram text-xl"></i></a>
173
+ </div>
174
+ <p class="mb-2">© 2023 فحص الأعداد الأولية. جميع الحقوق محفوظة.</p>
175
+ <p class="text-sm text-emerald-100">تم تطويره بحب لمساعدة الطلاب والمهتمين بالرياضيات</p>
176
+ </div>
177
+ </footer>
178
+
179
+ <script>
180
+ document.addEventListener('DOMContentLoaded', function() {
181
+ let attempts = 0;
182
+ const maxAttempts = 3;
183
+ const numberInput = document.getElementById('numberInput');
184
+ const checkBtn = document.getElementById('checkBtn');
185
+ const resultCard = document.getElementById('resultCard');
186
+ const resultTitle = document.getElementById('resultTitle');
187
+ const resultText = document.getElementById('resultText');
188
+ const primeBadge = document.getElementById('primeBadge');
189
+ const factorsContainer = document.getElementById('factorsContainer');
190
+ const historyList = document.getElementById('historyList');
191
+ const clearHistoryBtn = document.getElementById('clearHistoryBtn');
192
+ const emptyHistoryText = document.getElementById('emptyHistoryText');
193
+
194
+ let history = JSON.parse(localStorage.getItem('primeHistory')) || [];
195
+
196
+ // Load history on page load
197
+ renderHistory();
198
+
199
+ // Check if number is prime
200
+ function isPrime(num) {
201
+ if (num <= 1) return false;
202
+ if (num <= 3) return true;
203
+
204
+ if (num % 2 === 0 || num % 3 === 0) return false;
205
+
206
+ for (let i = 5; i * i <= num; i += 6) {
207
+ if (num % i === 0 || num % (i + 2) === 0) return false;
208
+ }
209
+
210
+ return true;
211
+ }
212
+
213
+ // Get factors of a number
214
+ function getFactors(num) {
215
+ const factors = [];
216
+ for (let i = 1; i <= Math.sqrt(num); i++) {
217
+ if (num % i === 0) {
218
+ factors.push(i);
219
+ if (i !== num / i) {
220
+ factors.push(num / i);
221
+ }
222
+ }
223
+ }
224
+ return factors.sort((a, b) => a - b);
225
+ }
226
+
227
+ // Format number with Arabic commas
228
+ function formatNumber(num) {
229
+ return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
230
+ }
231
+
232
+ // Add to history
233
+ function addToHistory(num, isPrime) {
234
+ const existingIndex = history.findIndex(item => item.number === num);
235
+ if (existingIndex !== -1) {
236
+ history.splice(existingIndex, 1);
237
+ }
238
+
239
+ history.unshift({
240
+ number: num,
241
+ isPrime: isPrime,
242
+ date: new Date().toLocaleString()
243
+ });
244
+
245
+ if (history.length > 10) {
246
+ history.pop();
247
+ }
248
+
249
+ localStorage.setItem('primeHistory', JSON.stringify(history));
250
+ renderHistory();
251
+ }
252
+
253
+ // Render history
254
+ function renderHistory() {
255
+ if (history.length === 0) {
256
+ emptyHistoryText.classList.remove('hidden');
257
+ return;
258
+ }
259
+
260
+ emptyHistoryText.classList.add('hidden');
261
+ historyList.innerHTML = '';
262
+
263
+ history.forEach(item => {
264
+ const historyItem = document.createElement('div');
265
+ historyItem.className = `history-item bg-gray-50 rounded-lg p-3 flex items-center justify-between border ${item.isPrime ? 'border-emerald-200' : 'border-red-200'}`;
266
+
267
+ historyItem.innerHTML = `
268
+ <div class="flex items-center space-x-3 space-x-reverse">
269
+ <span class="font-bold text-lg">${formatNumber(item.number)}</span>
270
+ <span class="px-2 py-1 rounded-full text-xs font-bold ${item.isPrime ? 'bg-emerald-100 text-emerald-800' : 'bg-red-100 text-red-800'}">
271
+ ${item.isPrime ? 'أولي' : 'غير أولي'}
272
+ </span>
273
+ </div>
274
+ <span class="text-gray-500 text-sm">${item.date}</span>
275
+ `;
276
+
277
+ historyItem.addEventListener('click', () => {
278
+ numberInput.value = item.number;
279
+ checkNumber(item.number);
280
+ });
281
+
282
+ historyList.appendChild(historyItem);
283
+ });
284
+ }
285
+
286
+ // Clear history
287
+ clearHistoryBtn.addEventListener('click', () => {
288
+ if (confirm('⚠️ هل أنت متأكد من رغبتك في مسح سجل الفحوصات؟\n\nسيتم حذف جميع البيانات المحفوظة ولا يمكن استرجاعها')) {
289
+ history = [];
290
+ localStorage.removeItem('primeHistory');
291
+ renderHistory();
292
+ }
293
+ });
294
+
295
+ // Check number function
296
+ function checkNumber(num) {
297
+ if (!num || num < 1) {
298
+ alert('الرجاء إدخال عدد صحيح موجب');
299
+ return;
300
+ }
301
+
302
+ attempts++;
303
+ if (attempts > maxAttempts) {
304
+ alert('🛑 لقد استنفذت عدد المحاولات المجانية\n\n✨ للحصول على تجربة كاملة بدون قيود، يرجى تحميل التطبيق من الزر بالأعلى');
305
+ return;
306
+ }
307
+
308
+ const prime = isPrime(num);
309
+ const factors = getFactors(num);
310
+
311
+ // Update UI
312
+ resultTitle.textContent = `الرقم ${formatNumber(num)}`;
313
+ primeBadge.classList.remove('hidden');
314
+
315
+ if (prime) {
316
+ resultCard.className = 'result-card show rounded-xl shadow-lg p-6 mb-8 border-2 prime';
317
+ resultText.textContent = `هذا عدد أولي لأنه لا يقبل القسمة إلا على نفسه وعلى 1.`;
318
+ primeBadge.className = 'px-3 py-1 rounded-full text-sm font-bold bg-emerald-100 text-emerald-800';
319
+ primeBadge.textContent = 'أولي';
320
+ } else {
321
+ resultCard.className = 'result-card show rounded-xl shadow-lg p-6 mb-8 border-2 not-prime';
322
+ resultText.textContent = `هذا عدد غير أولي لأنه يقبل القسمة على أعداد أخرى غير نفسه و1.`;
323
+ primeBadge.className = 'px-3 py-1 rounded-full text-sm font-bold bg-red-100 text-red-800';
324
+ primeBadge.textContent = 'غير أولي';
325
+ }
326
+
327
+ // Show factors
328
+ factorsContainer.innerHTML = `
329
+ <div class="mt-4">
330
+ <h4 class="font-bold mb-2">عوامل الرقم ${formatNumber(num)}:</h4>
331
+ <div class="flex flex-wrap gap-2">
332
+ ${factors.map(factor => `
333
+ <span class="px-3 py-1 bg-gray-100 rounded-full ${factor === 1 || factor === num ? 'font-bold text-emerald-700' : ''}">
334
+ ${formatNumber(factor)}
335
+ </span>
336
+ `).join('')}
337
+ </div>
338
+ </div>
339
+ `;
340
+
341
+ // Add to history
342
+ addToHistory(num, prime);
343
+ }
344
+
345
+ // Event listeners
346
+ checkBtn.addEventListener('click', () => {
347
+ const num = parseInt(numberInput.value);
348
+ checkNumber(num);
349
+ });
350
+
351
+ numberInput.addEventListener('keypress', (e) => {
352
+ if (e.key === 'Enter') {
353
+ const num = parseInt(numberInput.value);
354
+ checkNumber(num);
355
+ }
356
+ });
357
+
358
+ });
359
+ </script>
360
+ <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=AHMed3290mljdh/gl" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
361
+ </html>