من رفتم سربازی اگر محتوای منو دوست داشتید و بدردتون خورد از من حمایت مالی کنید

تمرین کامل بودن یا نبودن + جاوا/سی پلاس پلاس

تمرین کامل بودن یا نبودن + جاوا/سی پلاس پلاس
تمرین کامل بودن یا نبودن + جاوا/سی پلاس پلاس

تمرین کامل بودن یا نبودن + جاوا/سی پلاس پلاس

در این نوشته تمرین “تمرین کامل بودن یا نبودن” که در وبسایت کوئرا موجود است را برای شما کاربران عزیز حل کردیم.

 

تمرین کامل بودن یا نبودن + جاوا/سی پلاس پلاس

سوال تمرین کامل بودن یا نبودن

برنامه‌ای بنویسید که عددی مانند N را از کاربر دریافت کند و در صورتی که خاصیت کامل بودن را داشته، یعنی مجموع مقسوم‌ علیه‌های آن (غیر از خودش) برابر با آن عدد شود، YES و در غیر این صورت NO را چاپ کند.

 

ورودی تمرین کامل بودن یا نبودن

در یک خط عدد N به شما داده می‌شود.

1≤N≤200000

 

خروجی تمرین کامل بودن یا نبودن

چنانچه عدد کامل بود YES در غیراینصورت NO چاپ کنید.

 

مثال تمرین کامل بودن یا نبودن

Sample 1:
===============================================
input :
27
output :
No

Sample 2:
===============================================
input :
6
output :
YES

 

راهنمای حل

کامل بودن عدد یا کامل نبودن عدد شامل یک حلقه است که به عدد آن‌را تقسیم می‌کنیم. در صورتی که حاصل این تقسیم صفر شد آن‌را به حاصل متغیر count اضافه می‌کنیم. در آخر تساوی متغیر count و عدد اصلی را بررسی می‌کنیم و خروجی YES و NO را چاپ می‌کنیم.

 

حل تمرین(جاوا)

import java.util.Scanner;

public class Main {

    public static Scanner sc;


    public static void main(String[] args) {
        sc = new Scanner(System.in);
        int number = sc.nextInt();
        int count = 0;

        for (int i = 1; i <= number / 2;i++) {
            if(count == number) {
                count += i;
            }
        }

        if(count == number) {
            System.out.println("YES");
        }
        else {
            System.out.println("No");
        }
    }

}

 

حل تمرین(سی پلاس پلاس)

#include <iostream>

using namespace std;

int main()
{
	int number;
	cin >> number;
    int count = 0;

   for (int i = 1; i <= number / 2;i++)
	if(number % i == 0)
		count += i;

	if(count == number)
		cout << "YES" << endl;
	else
		cout << "No" << endl;

	return 0;
}

 

کد حل شده توسط کاربر “امیرحسین” – (اصلاح)

#include "iostream.h"

using namespace std;

int main()
{
	long long int a, b, c, n;
	cin>> n;
	
	c = 0;
	
	for(int i =1; i!=n; i++)
	{
		if(n % i == 0)
		{
			c += i;
		}
	}
	
	if(c == n)
	{
		cout <<"YES";
	}
	
	else
	{
		cout<<"NO";
	}
	
	
	return 0;
}

منبع سوال‌: وبسایت کوئرا

برای امتیاز به این نوشته کلیک کنید!
[کل: 1 میانگین: 5]