المحتويات
السؤال هو: العدد الذي لا يقبل القسمه على 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.