Loading

题解 AT4247 【[ABC106B] 105】

题意概述

问在\(1\)\(n\)中有多少个奇数拥有八个因数。

分析

emm,看起来很难,但这只是一个红题,我们不由自主的将目光放到了数据范围上:\(1\leq n\leq 200\)

这不就是暴力枚举吗?

\(i\)代表我们枚举的\(x\),我们再从\(1\)\(i\)枚举\(i\)的因数,我们就可以很轻松的鞋出以下的代码

#include <bits/stdc++.h>//万能头文件
using namespace std;
int n, ans;//定义变量
int main()
{
    cin >> n;//输入n
    for(int i = 1; i <= n; i += 2)//从1到n循环
    {
        int cnt = 0;//定义计数器变量,代表有i几个因数,注意局部变量要清零
        for(int j = 1; j <= i; j ++)
        {
            if(i % j == 0) cnt ++;//如果j是i的因数,就让计数器加一
        }
        if(cnt == 8)//如果i的因数个数刚好为8
            ans ++;//答案加一
    }
    cout << ans << endl;//输出答案
    return 0;
}

提交,轻松AC!!

posted @ 2021-01-26 17:01  zhangwenxuan  阅读(133)  评论(0)    收藏  举报