Alqoritm Analizi
Əgər ədədi ədədinin bölənidirsə, onda də ədədinin böləni olacaq. Bu halda, əgər tam kvadratsa, onda və bölənləri üst-üstə düşəcək.
Alqoritm Tətbiqi
Giriş dəyəri oxu.
scanf("%d",&n);
1-dən -ə qədər bölənləri iterasiya et, daxil olmaqla deyil.
for(i = 1; i < sqrt(n); i++) if (n % i == 0) { // Əgər i, n-nin böləni isə, onda n / i də n-nin böləni olacaq. v.push_back(i); v.push_back(n / i); }
Yoxla tam kvadratdırmı. Bu halda, bölən -i vektora əlavə et.
i = sqrt(n); if (i * i == n) v.push_back(i);
Bölənləri artan sırayla sırala.
sort(v.begin(),v.end());
Bütün bölənləri bir sıra ilə çap et.
for(i = 0; i < v.size(); i++) printf("%d ",v[i]); printf("\n");
Java Tətbiqi
import java.util.*; public class Main { public static void main(String[] args) { Scanner con = new Scanner(System.in); int n = con.nextInt(); ArrayList<Integer> v = new ArrayList<Integer>(); for(int i = 1; i < Math.sqrt(n); i++) if (n % i == 0) { v.add(i); v.add(n / i); } int i = (int)Math.sqrt(n); if (n % i == 0) v.add(i); Collections.sort(v); for(i = 0; i < v.size(); i++) System.out.print(v.get(i) + " "); System.out.println(); con.close(); } }
Python Tətbiqi
import math n = int(input()) list = [] for i in range(1, int(math.sqrt(n))): if n % i == 0: list.append(i) list.append(n//i) i = int(math.sqrt(n)); if n % i == 0: list.append(i); list.sort() print(*list, sep=" ")