2020年第十一届蓝桥杯大赛软件类决赛(国赛) C/C++ 大学A组【题面+个人解答1】
试题 A: 合数个数(5 分)
【问题描述】
一个数如果除了 1 和自己还有其他约数,则称为一个合数。例如:1, 2, 3不是合数,4, 6 是合数。
请问从 1 到 2020 一共有多少个合数。
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
#include<iostream>
using namespace std;
int isIt(int n)
{
if (n % 2 == 0)return 1;
else
{
int i = 3;
while (n % i != 0&&i*i<=n)
{
i++;
}
if (n % i == 0)return 1;
if (i * i > n)return 0;
}
}
int main()
{
int n = 2020;
int sum = 0;
for (int i = 4; i <= n; i++)
{
sum += isIt(i);
}
cout << "sum=" << sum << endl;
return 0;
}
运行结果: