計蒜客 T1079開關燈 C語言編程

int a[5001] ; 
int main(){
    int m, n, k = 1;
    scanf("%d",&n);
    scanf("%d",&m);      
        for(int i = 2; i <= m; i++){
            for(int j = i; j <=n; j=j+i){
                a[j] = a[j]^1;
            }
        }
        printf("%d",k);
        for(int i = 2; i < n+1; i++)
            if(a[i] == 0) printf(",%d",i);
       
}

 

拓展,若M=N,優化算法爲:

int a[5001];
int main() {
    int m, n, k = 1;
    scanf("%d", &n);
    scanf("%d", &m);
    printf("%d", k);
    for (int i = 2; (i * i) < n + 1; i++)
        printf(",%d", i * i);
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章