Soru
Programcıya, herhangi bir sayi (girilenSayi) veriliyor. Sonrasında, verilen değeri hangi pozitif sayı ya da sayıların bölebildiğini (sonuc) ve toplamda kaç adet sayının bölüm yapabildiğini bulması isteniyor.
Örnek
Girdi | Çıktı |
---|---|
girilenDeger: 24 | Sonuç: 1 2 3 4 6 8 12 24 Bölen sayı adedi: 8 |
girilenDeger: 67 | Sonuç: 1 67 Bölen sayı adedi: 2 |
Çözüm - C#
using System;
using System.Collections.Generic;
internal class Program
{
private static void Main(string[] args)
{
int girilenSayi = 162;
List<int> bolenSayilar = new List<int>();
// Girilen sayıya kadar olan bir döngü oluştur
for (int i = 1; i <= girilenSayi; i++)
{
// Döngüdeki sayı girilen sayıyı bölüyorsa diziye ekle
if ((girilenSayi % i) == 0)
{
bolenSayilar.Add(i);
}
}
// Dizideki değerleri tek tek yazdır
foreach (int degerler in bolenSayilar)
{
Console.Write(degerler + " ");
}
// Boş bir satır ekle
Console.Write(Environment.NewLine);
// Kaç adet sayının böldüğünü bildir
Console.WriteLine("Bölen sayı adedi: " + bolenSayilar.Count);
Console.Read();
}
}
Çözüm - Java
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
int girilenSayi = 162;
ArrayList<Integer> bolenSayilar = new ArrayList<>();
// Girilen sayıya kadar olan bir döngü oluştur
for (int i = 1; i <= girilenSayi; i++) {
// Döngüdeki sayı girilen sayıyı bölüyorsa diziye ekle
if ((girilenSayi % i) == 0) {
bolenSayilar.add(i);
}
}
// Dizideki değerleri tek tek yazdır
for (int degerler : bolenSayilar) {
System.out.print((degerler + " "));
}
// Boş bir satır ekle
System.out.print(System.lineSeparator());
// Kaç adet sayının böldüğünü bildir
System.out.print("Bölen sayı adedi: " + bolenSayilar.size());
}
}