بررسی بخش پذیری بر ۷ — به زبان ساده

در این مطلب، به روش نوشتن برنامه‌ای که بخش‌پذیری بر ۷ را بررسی می‌کند، پرداخته شده است. فرض می‌شود یک عدد n داده شده است. هدف بررسی این موضوع است که آیا عدد مذکور، بر ۷ بخش‌پذیر است یا خیر. فرض نیز بر این است که گفته شده از «عملگر پیمانه‌ای» (Modulo Operator) و «ممیز شناور» (Floating Point Arithmetic) برای انجام این محاسبات استفاده نشود. یک راهکار ساده، تفریق تکرار شونده است. در ادامه، راهکار بهتری برای انجام این کار بیان خواهد شد.

بخش پذیری بر ۷ را می‌توان با استفاده از یک متد بازگشتی محاسبه کرد. یک عدد به فرم ۱۰a + b بر هفت بخش‌پذیر است اگر و تنها اگر، ۲b بر هفت بخش‌پذیر باشد. به بیان دیگر، آخرین رقم را دو بار از عدد شکل گرفته با ارقام باقی‌مانده باید کم کرد. این کار تا هنگام رسیدن به یک عدد کوچک، باید ادامه پیدا کند.

مثال: اعداد زیر داده شده‌اند.

۳۷۱: ۳۷ – (۲×۱) = ۳۷ – ۲ = ۳۵;

۳ – (۲ × ۵) = ۳ – ۱۰ = -۷

بنابراین، با توجه به اینکه ۷- بر ۷ بخش‌پذیر است، ۳۷۱ نیز بر ۷ بخش‌پذیر است. در ادامه، روش بالا در زبان‌های برنامه‌نویسی گوناگون شامل ++C ،C، «جاوا» (Java)، «پایتون» (Python)، «سی شارپ» (#C) و «پی اچ پی» (PHP) پیاده‌سازی شده است.

برنامه بررسی بخش پذیری بر ۷ در ++C

// A Program to check whether a number is divisible by 7 
#include <bits/stdc++.h> 
using namespace std; 

int isDivisibleBy7( int num ) 
{ 
// If number is negative, make it positive 
if( num < 0 ) 
return isDivisibleBy7( -num ); 

// Base cases 
if( num == 0 || num == 7 ) 
return 1; 
if( num < 10 ) 
return 0; 

// Recur for ( num / 10 - 2 * num % 10 ) 
return isDivisibleBy7( num / 10 - 2 * 
( num - num / 10 * 10 ) ); 
} 

// Driver code 
int main() 
{ 
int num = 616; 
if( isDivisibleBy7(num ) ) 
cout << "Divisible" ; 
else
cout << "Not Divisible" ; 
return 0; 
} 

// This code is contributed by rathbhupendra

برنامه بررسی بخش پذیری بر ۷ در C

// A Program to check whether a number is divisible by 7 
#include <stdio.h> 

int isDivisibleBy7( int num ) 
{ 
// If number is negative, make it positive 
if( num < 0 ) 
return isDivisibleBy7( -num ); 

// Base cases 
if( num == 0 || num == 7 ) 
return 1; 
if( num < 10 ) 
return 0; 

// Recur for ( num / 10 - 2 * num % 10 ) 
return isDivisibleBy7( num / 10 - 2 * ( num - num / 10 * 10 ) ); 
} 

// Driver program to test above function 
int main() 
{ 
int num = 616; 
if( isDivisibleBy7(num ) ) 
printf( "Divisible" ); 
else
printf( "Not Divisible" ); 
return 0; 
}

برنامه بررسی بخش پذیری بر ۷ در جاوا

// Java program to check whether a number is divisible by 7 
import java.io.*; 

class GFG 
{ 
// Function to check whether a number is divisible by 7 
static boolean isDivisibleBy7(int num) 
{ 
// If number is negative, make it positive 
if( num < 0 ) 
return isDivisibleBy7( -num ); 

// Base cases 
if( num == 0 || num == 7 ) 
return true; 
if( num < 10 ) 
return false; 

// Recur for ( num / 10 - 2 * num % 10 ) 
return isDivisibleBy7( num / 10 - 2 * ( num - num / 10 * 10 ) ); 
} 

// Driver program 
public static void main (String[] args) 
{ 
int num = 616; 
if(isDivisibleBy7(num)) 
System.out.println("Divisible"); 
else
System.out.println("Not Divisible"); 
} 
} 

// Contributed by Pramod Kumar

برنامه بررسی بخش پذیری بر ۷ در پایتون

# Python program to check whether a number is divisible by 7 

# Function to check whether a number is divisible by 7 
def isDivisibleBy7(num) : 

# If number is negative, make it positive 
if num < 0 : 
return isDivisibleBy7( -num ) 

# Base cases 
if( num == 0 or num == 7 ) : 
return True

if( num < 10 ) : 
return False

# Recur for ( num / 10 - 2 * num % 10 ) 
return isDivisibleBy7( num / 10 - 2 * ( num - num / 10 * 10 ) ) 

# Driver program 
num = 616
if(isDivisibleBy7(num)) : 
print "Divisible"
else : 
print "Not Divisible"

# This code is contributed by Nikita Tiwari

برنامه بررسی بخش پذیری بر ۷ در #C

// C# program to check whether a 
// number is divisible by 7 
using System; 

class GFG { 

// Function to check whether a 
// number is divisible by 7 
static bool isDivisibleBy7(int num) 
{ 

// If number is negative, 
// make it positive 
if( num < 0 ) 
return isDivisibleBy7(-num); 

// Base cases 
if( num == 0 || num == 7 ) 
return true; 
if( num < 10 ) 
return false; 

// Recur for ( num / 10 - 2 * num % 10 ) 
return isDivisibleBy7(num / 10 - 2 * 
( num - num / 10 * 10 )); 
} 

// Driver Code 
public static void Main () 
{ 
int num = 616; 
if(isDivisibleBy7(num)) 
Console.Write("Divisible"); 
else
Console.Write("Not Divisible"); 
} 
} 

// This code is contributed by Nitin Mittal.

برنامه بررسی بخش پذیری بر ۷ در PHP

<?php 
// PHP Program to check whether 
// a number is divisible by 7 

// Function to check whether a 
// number is divisible by 7 
function isDivisibleBy7( $num ) 
{ 

// If number is negative, 
// make it positive 
if( $num < 0 ) 
return isDivisibleBy7( -$num ); 

// Base cases 
if( $num == 0 || $num == 7 ) 
return 1; 
if( $num < 10 ) 
return 0; 

// Recur for ( num / 10 - 2 * num % 10 ) 
return isDivisibleBy7($num / 10 - 2 * 
($num - $num / 10 * 10 ) ); 
} 

// Driver Code 
$num = 616; 
if( isDivisibleBy7($num )>=0 ) 
echo("Divisible"); 
else
echo("Not Divisible"); 

// This code is contributed by vt_m. 
?>

خروجی:

Divisible

روش کار قطعه کد بالا

فرض می‌شود که b آخرین رقم از عدد n و a عددی است که هنگام تقسیم کردن b به دست می‌آید. ارائه عدد را می‌توان در هر عددی که نسبت به مقسوم‌علیه اول است ضرب (چند برابر) کرد، بدون آنکه بخش‌پذیری آن تغییر کند. پس از مشاهده آنکه ۲۱ بر ۷ بخش‌پذیر است، می‌توان اقدامات زیر را انجام داد.

۱۰٫a + b

پس از ضرب در ۲، خروجی به صورت زیر خواهد بود:

۲۰٫a + 2.b

و سپس:

۲۱٫a – a + 2.b

با حذف ضریب ۲۱، رابطه زیر حاصل می‌شود:

-a + 2b

و با ضرب در ۱-، خروجی زیر حاصل می‌شود:

a – 2b

روش‌های دیگری نیز برای بررسی بخش‌پذیری بر ۷ و دیگر اعداد وجود دارد.

اگر نوشته بالا برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *