C++ perfect number bulma

RSK06

Hectopat
Katılım
29 Aralık 2020
Mesajlar
2.285
Çözümler
4
Daha fazla  
Cinsiyet
Erkek
1619795454920.png


Bu sayıları nasıl bulabilirim acaba? Kısa yolu nedir?
 
  • Sayı alıp bölenlerini return eden bir method.
  • Array şeklinde gelen tam sayıların toplamını return edern bir method.
  • 1 ile 500 arasında çalışan bir for döngüsü.
  • == ile kontrol.
 
Yolunu bilmiyorum ama w3schools'ta bu olayı anlatan bir yazı var:



C++:
#include <iostream>
#include <cctype>
using namespace std;

int main(){
    int n,i=1,sum=0;
    cout << "Bir sayı giriniz: ";
    cin >> n;
       while(i<n){
       if(n%i==0)
       sum=sum+i;
       i++;
}
 
if(sum==n)
    cout << i << " Bir mükemmel sayıdır\n";
else
    cout << i << " Bir mükemmel sayı değildir\n";
    system("pause");

return 0;
}
 
JavaScript:
const getDivisors = (num) => {
  const divisiors = [];
  for (let i = 1; i < num; i++)
    if (num % i === 0)
      divisiors.push(i);
  return divisiors;
}
for (let i = 1; i < 500; i++)
  !!(i === getDivisors(i).reduce((acc, v) => acc + v, 0)) && console.log(i);

JS ile bu şekilde yazılabilir. Benzerini C++ yazmak çok da zor olmasa gerek.

Bölenlere kasıtlı olarak sayının kendisi dahil edilmemiştir.
 
Son düzenleme:
[CODE lang="c" title="C dilinde yazdım"]#include <stdio.h>

int main()
{
int sayi1, bol,bolum,toplam=0;
printf("Herhangi bir sayi giriniz: ");
scanf_s("%d", &sayi1);
for (bol = 1; bol < sayi1; bol++) {
bolum = sayi1 % bol;
if (bolum == 0) {
toplam += bol;
}
}

if (toplam == sayi1)
printf("\nSayi mukemmel sayi");
else
printf("\nSayi mukemmel sayi degil");

}[/CODE]
 

Yeni konular

Geri
Yukarı