c·c++/c 프로그래밍

정수의 점화식

바로이순간 2012. 5. 25. 15:34

c언어에서

a=3*m+2*(m+1)*n 이런식으로 해서 m과 n값에 따라 여러 a값이 나오겠죠?

 

제가 궁금한건 여기서 b값을 a가 아닌 a값보다 작은 모든 자연수를 나열하는건데요,

어떻게하면 이런걸 식으로 만들수있을까요?

------------------------------------------------------------------------------------------------------------------------

#include <stdio.h>

int check(int n) {

    int i, x;


    for(i=1;i<n;++i) {

        x=n-3*i;

        if(x<0) return 1;

        if(x%(2*(i+1))==0) return 0;

    }


    return 1;

}

int main() {

    int i, x;


    printf("정수입력: ");

    scanf("%d", &x);


    for(i=1;i<x;++i) if(check(i)) printf("%5d", i);


    return 0;

}


=========================================================

죄송하지만 2차식을 (2m+3)+(3m+2)n으로 해서 답변가능하신가요?


두번째 버전입니다. 


#include <stdio.h>

int check(int n) {

    int i, x;


    for(i=0;i<n;++i) {

        x=n-2*i-3;

        if(x<0) return 1;

        if(x%(3*i+2)==0) return 0;

    }


    return 1;

}

int main() {

    int i, x;


    printf("정수입력: ");

    scanf("%d", &x);


    for(i=1;i<x;++i) if(check(i)) printf("%5d", i);


    return 0;

}