Find sum of even factors of a number

 1 #include<bits/stdc++.h>
 2 
 3 using namespace std;
 4 
 5 long long solve(int n)//能有偶数因子的肯定是偶数进来:偶=偶×偶 偶=偶×奇
 6 {
 7     if(n%2!=0)//没有异常处理报错一个
 8         return 0;
 9     long long sum=0;
10     for(int i=2;i<=sqrt(n*1.0);i++)//没写等号报错一个
11     {
12         if(n%i==0&&i%2==0)
13         {
14             if(i==n/i)
15                 sum+=i;
16             else if((n/i)%2==0)
17                 sum+=(i+n/i);
18             else
19                 sum+=i;
20         }
21         else if(n%i==0&&i%2!=0)
22             sum+=(n/i);
23     }
24     return sum+n;
25 }
26 
27 int main()
28 {
29     int t,n;
30     cin>>t;
31     while(t--)
32     {
33         cin>>n;
34         cout<<solve(n)<<endl;
35     }
36     return 0;
37 }

猜你喜欢

转载自www.cnblogs.com/chuanwen-tech/p/11291194.html
今日推荐