Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int broj_na_deliteli(int N, int brojac) {
- if(brojac == N) {
- return 1;
- }
- if(N % brojac == 0) { // brojac e delitel na N
- return broj_na_deliteli(N, brojac + 1) + 1; // sme nasle uste eden delitel
- }
- else {
- return broj_na_deliteli(N, brojac + 1) + 0; // ne sme nasle uste eden delitel
- }
- }
- int dali_e_k_deliv(int N, int brojac) {
- if(brojac == N) {
- return 1; // brojot e garantirano k-deliv
- }
- int broj_na_deliteli_na_N = broj_na_deliteli(N, 1);
- int broj_na_deliltei_na_brojac = broj_na_deliteli(brojac, 1);
- if(broj_na_deliteli_na_N <= broj_na_deliltei_na_brojac) {
- return 0;
- }
- return dali_e_k_deliv(N, brojac + 1);
- }
- int max(int a, int b) { // vraka pogolem broj megju a i b
- if(a > b) {
- return a;
- }
- return b;
- }
- int sum_od_a_do_b(int brojac, int b, int k) {
- if(brojac > b) {
- return 0;
- }
- if(dali_e_k_deliv(brojac, max(brojac - k, 1)) == 1) { // proverka dali brojot e k-deliv
- return sum_od_a_do_b(brojac + 1, b, k) + brojac;
- }
- else {
- return sum_od_a_do_b(brojac + 1, b, k);
- }
- }
- // [a, b]
- // [a+1, a+2, a+3, ... a+x; a + x = b]
- int main()
- {
- int A, B; // opsegot pomegju A i B
- int k; // k-deliv, odnosno site broevi N - 1, N - 2, .. , N - K
- scanf("%d%d%d", &A, &B, &k);
- printf("%d\n", sum_od_a_do_b(A, B, k));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment