0
已解决
许金夫
初级天翼
初级天翼
这道题好烦啊,谁来帮忙
许金夫在2019-09-20 22:34:41追加了内容
题目描述 Description
小华太希望和小新一起共进晚餐了,但是小新告诉小华说,如果想共进晚餐是有条件的。条件就是需要告诉他N的所有因数的和。这里的因数包括1和N本身。小华很高兴,因为这个问题他很早就会了。但是当他看到小新给的数字的时候,他懵了。
输入描述 Input Description
第一行一个数N
输出描述 Output Description
输出一个数,N的所有因数的和
样例输入 Sample Input
12
样例输出 Sample Output
28
许金夫在2019-09-22 10:10:26追加了内容
对了,这道题我是超时90分
#include<iostream>
using namespace std;
int main()
{
int n,c=1,i,sum;
cin>>n;
sum=1+n;
for(i=2;i<=n/2;i++)
{
if(n%i==0)
{
sum+=i;
}
}
cout<<sum;
return 0;
}
0
已采纳
吕若朴
中级光能
中级光能
你的循环判断次数太多了,
应改为:
for(int i=2;i*i<=n;i++){
if(n%i==0&&n/i!=i)sum+=i+n/i;
else if(n%i==0)sum+=i;
}
即若n模i为0且i不是n的平方根,sum就同时加上i和n/i,
否则,若是n的平方根,则只加上i。
0
0
0
0
吕若朴
中级光能
中级光能
你的循环判断次数太多了,
应改为:
for(int i=2;i*i<=n;i++){
if(n%i==0&&n/i!=i)sum+=i+n/i;
else if(n%i==0)sum+=i;
}
即若n模i为0且i不是n的平方根,sum就同时加上i和n/i,
否则,若是n的平方根,则只加上i。
0
0
董子墨
中级天翼
中级天翼
我自己写的代码,应为你没给题号,所以我只试了样例。
循环(int i=1;i<=n;i++)
if(n%i==0)s+=i;//s是计数器
董子墨在2019-09-21 09:03:02追加了内容
s和n最好定义成超长整型
董子墨在2019-09-22 18:05:09追加了内容
刚刚刷到这道题,是2685 条件
董子墨在2019-09-22 18:07:46追加了内容