سؤال وجواب

العدد الذي لايقبل القسمة على ٧ هو …. ؟

السؤال هو: العدد الذي لا يقبل القسمه على 7 هو:

يجد كثير من الأشخاص صعوبة في حل المسائل الحسابية ، وفيما يلي نجيب لكم على أحد الأسئلة الحسابية ومنها العدد الذي لا يقبل القسمة على 7 ، حيث يستخدم المعامل % في التحقق من قابلية قسمة عدد معين على عدد آخر وذلك بالحصول على النتيجة 0، ولكن عندما يصبح الرقم المعنيّ كبيرًا يصير من الصعب استخدام هذا المعامل للتحقق من قابلية القسمة، ولهذا نلجأ إلى بعض الخوارزميات التي تسهّل هذه العملية.

قابلية القسمة على 7

يمكن التحقق من قابلية قسمة عدد معين على 7 باستخدام طريقة تعاودية، وتعتمد هذه الطريقة على أنّ العدد الذي يكون بالصيغة 10a + b قابلًا للقسمة على 7 إذا وفقط إذا كانت ناتج العملية a - 2b قابلاً للقسمة على 7. وبمعنى آخر، نطرح ضعف الرقم الأخير من الرقم الناتج من بقية الأرقام، ونستمر في ذلك إلى حين الحصول على رقم يقبل القسمة على 7.

فمثلًا: العدد 371:

37 – (2 × 1) = 37 – 2 = 35
3 – (2 × 5) = 3 – 10 = –7

لمّا كان العدد 7– يقبل القسمة على 7 فإنّ العدد 371 يقبل القسمة على 7.

تنفيذ الخوارزمية

تعرض الأمثلة التالية طريقة تنفيذ الخوارزمية في عدد من لغات البرمجة:

  • C++‎:
#include <bits/stdc++.h> 
using namespace std; 

int isDivisibleBy7( int num ) 
{ 
	// نحول العدد السالب إلى موجب
	if( num < 0 ) 
		return isDivisibleBy7( -num ); 

	// الحالات الأساسية
	if( num == 0 || num == 7 ) 
		return 1; 
	if( num < 10 ) 
		return 0; 

	// تستدعي الدالة نفسها 
	return isDivisibleBy7( num / 10 - 2 * 
			( num - num / 10 * 10 ) ); 
} 

// اختبار الشيفرة السابقة
int main() 
{ 
	int num = 616; 
	if( isDivisibleBy7(num ) ) 
		cout << "Divisible" ; 
	else
		cout << "Not Divisible" ; 
	return 0; 
}
  • بايثون:
def isDivisibleBy7(num) : 
	
	#  نحول العدد السالب إلى موجب
	if num < 0 : 
		return isDivisibleBy7( -num ) 

	# الحالات الأساسية
	if( num == 0 or num == 7 ) : 
		return True
	
	if( num < 10 ) : 
		return False
		
	# تستدعي الدالة نفسها
	return isDivisibleBy7( num / 10 - 2 * ( num - num / 10 * 10 ) ) 
	
# اختبار الشيفرة السابقة
num = 616
if(isDivisibleBy7(num)) : 
	print "Divisible"
else : 
	print "Not Divisible"
  • جافا:
import java.io.*; 

class GFG 
{ 
	static boolean isDivisibleBy7(int num) 
	{ 
		// تحويل العدد السالب إلى موجب
		if( num < 0 ) 
			return isDivisibleBy7( -num ); 

		// الحالات الأساسية
		if( num == 0 || num == 7 ) 
			return true; 
		if( num < 10 ) 
			return false; 

		// تستدعي الدالة نفسها
		return isDivisibleBy7( num / 10 - 2 * ( num - num / 10 * 10 ) ); 
	} 
	
	// اختبار الشيفرة السابقة
	public static void main (String[] args) 
	{ 
		int num = 616; 
		if(isDivisibleBy7(num)) 
			System.out.println("Divisible"); 
		else
			System.out.println("Not Divisible"); 
	} 
}

تعطي الشيفرات السابقة المخرجات التالية:

Divisible

ما هو العدد الذي لايقبل القسمة على ٧

28. 14. 48.

 

3.233.242.204, 3.233.242.204 CCBot/2.0 (https://commoncrawl.org/faq/)
السابق
من هو بدر العساكر ويكيبيديا واسمه الحقيقي
التالي
شرح قصيدة بشار بن برد إذا كنت في كل الأمور

اترك تعليقاً