题解 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!!
制作不易,点个赞在走吧(QAQ)

浙公网安备 33010602011771号