HDU1286 找新朋友

题目链接

分析:

一开始竟然天真的按着题意来。果断TLE。然后就改了下。

 

#include <stdio.h>
int a[32800];

int main(){
    int T, n, i, j, cnt;

    scanf("%d", &T);
    while(T--){
        scanf("%d", &n);
        for(i=1; i<n; i++) a[i] = 1;
        for(i=2; i<n; i++){
            if(n % i == 0){
                for(j=2; j<n; j++){
                    if(a[j] && j % i == 0) a[j] = 0;
                }
            }
        }
        cnt = 0;
        for(i=1; i<n; i++)if(a[i]) cnt++;
        printf("%d\n", cnt);
    }
    return 0;
}

 

 

posted on 2013-04-02 18:49  Still_Raining  阅读(130)  评论(0编辑  收藏  举报