1205.cpp

来自「这是哈尔滨工业大学acmOJ的源代码」· C++ 代码 · 共 59 行

CPP
59
字号
/*  This Code is Submitted by wywcgs for Problem 1205 on 2005-03-25 at 14:03:31 */ 
#include <stdio.h>
#include <math.h>

int main()
{
    int prime[50];
    int temp[8], i, j, k, flag, m;
    int n, step, prNum = 1;
    
    prime[0] = 2;
    for(i = 3; i <= 101; i += 2){
        flag = 1;
        m = sqrt(i);
        for(j = 3; j <= m; j += 2){
            if(i % j == 0){
                flag = 0;
                break;
            }
        }
        if(flag == 1){
            prime[prNum++] = i;
        }
    }        
    while(scanf("%d", &n) == 1){
        if(n == 0){
            return 0;
        }else{
            printf("%3d! =", n);
            for(i = 0; i < prNum; i++){
                step = 0;
                temp[0] = 1;
                for(j = 1; j < 8; j++){
                    temp[j] = temp[j-1] * prime[i];
                    if(temp[j] > 100){
                        break;
                    }
                }
                for(k = 1; k <= j; k++){
                    if(n >= temp[k]){
                        step += (n / temp[k]);
                    }
                }
                if(step != 0){
                    if(i == 15){
                        printf("\n");
                        printf("      ");
                    }
                    printf("%3d", step);
                }else{
                    break;
                }        
            }
            printf("\n");
        }
    }
    
    return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?