C++ perfect number bulma

RSK06

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


Bu sayıları nasıl bulabilirim acaba? Kısa yolu nedir?
 
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]
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Geri
Yukarı