蓝桥杯训练——除去次方数

来源:互联网 发布:淘宝店铺的图片尺寸 编辑:程序博客网 时间:2024/06/14 08:15
问题描述:除去次方数
作者:何知令
完成时间:2017年8月1日
输入:无

输出:10000以内除去次方数剩余的数的数量

算法思想:爆搜和打表,依次把每个数的每一个次方数找出来将其状态置为0,最后统计所有1的数量

代码如下:

/*问题描述:除去次方数作者:何知令完成时间:2017年8月1日输入:无输出:10000以内除去次方数剩余的数的数量*/#include <stdio.h>#include <stdlib.h>#define N 10000int main(){    int i,j;    int S=0;    long long k;    int states[N];    for(i=0; i<N; i++)        states[i]=1;    for(i=1; i<N; i++)    {        k=i;        for(j=1; j<N; j++)        {            if(k*i<N)            {                states[k*i]=0;                k=k*i;            }            else                break;        }    }    for(i=1; i<N; i++)        if(states[i]==1)            S++;    printf("%d",S);    return 0;}
程序运行结果展示:

知识点总结:打表和爆搜

学习心得:往个人主页一看,自己居然在7月份没有发表任何文章,懒惰之极

原创粉丝点击