蓝桥杯省模拟赛 质因数之和
问题描述
如果一个数 p 是个质数,同时又是整数 a 的约数,则 p 称为 a 的一个质因数。
请问,2024 的所有质因数的和是多少?
质因数是指一个数的因数(即约数)中,那些是质数的因数。换句话说:
-
因数:能够整除给定数的整数。例如,6的因数有1, 2, 3, 6。
-
质数:大于1的自然数,除了1和它本身外,没有其他正因数。例如,2, 3, 5, 7等都是质数。
-
质因数:一个数的因数中,是质数的那些因数。例如,6的质因数是2和3
#include<iostream>
#include<cmath>
using namespace std;
int a = 2024;
long long ans;
bool prime(int x)
{
if(x<2) return 0;
if(x==2) return 1;
for(int i=2; i<=sqrt(x); ++i)
{
if(x%i==0) return 0;
}
return 1;
}
int main()
{
for(int i=1; i<=a; ++i)
{
if(prime(i) && a%i==0)
{
ans += i;
}
}
cout<<ans;
return 0;
}