測了好久 質數找到10000才過
#include<iostream>
using namespace std;
int main()
{
int data[10000];
int i=0 , j=0 , k=0 , n=0;
data[0]=2;
k=1;
for(i=3;i<=10000;i++)
{
n=0;
for(j=0;j<k;j++)
{
if(i%data[j]==0)
{
n=1;
break;
}
}
if(n!=1)
{
data[k]=i;
k++;
}
}
unsigned long long int x=0 , sum=0 ;
while(cin>>x)
{
sum=0;
for(j=0;j<k;j++)
{
if(x<=1)
{
break;
}
while(x%data[j]==0)
{
x/=data[j];
sum+=data[j];
}
}
if(x>1)
{
sum+=x;
}
cout<<sum<<endl;
}
//system("pause");
return 0;
}