直接暴力求
void factor(int n)
{
//除了1和自身的所有因子
for(int i=2; i<n; i++)
{
if(n%i == 0)
{
cout<<i<<" ";
continue;
}
}
}
運用
輸入一個數N,求出2~N(包括N)之內的“黃金數”的個數。
黃金數即 除去1和它自身后,所有因子的乘積等於他本生的數:如 6 = 2*3
, 15 = 3*5
; 6,15
就是黃金數。
#include <iostream>
using namespace std;
int main()
{
long n, res=0;
cin>>n;
for(int i=6; i<=n; i++)
{
int ans = 1;
for(int j = 2; j< i; j++)
{
if(i%j == 0)
{
ans *= j;
continue;
}
}
if(ans == i)
{
res++;
//cout<<ans<<endl;
}
}
cout<<res<<endl;
return 0;
}