/* 第十一届蓝桥杯省赛C++组试题精讲第2题 求完数 因子:因子也叫因数,例如3×5=15,那么3和5是15的因子。 同时15×1=15,那么1和15也是15的因子。 1,3,5,15 这四个因子是15的所有因子。 完数:如果一个数等于不含它本身的其他因子之和,则称该数为‘完数’。 如6的因子有1,2,3,6,且1+2+3= 6,因此6是完数。 题目描述: 输入一个正整数N(0<N<10000), 输出小于N的所有完数及小于N的完数个数 (个数前加“*”,例如:*2)。 样例输入: 100 样例输出: 6 28 *2 */ #include <bits/stdc++.h> using namespace std; int main( void ) { int n; cin>>n; int tot=0; for(int i=1;i<n;i++) { int sum=0; for(int j=1;j<=i-1;j++) { if(i%j==0) { sum+=j; } } if( sum==i) { cout<<i<<endl; tot++; } } cout<<"*"<<tot<<endl; return 0; }
/* 第十一届蓝桥杯省赛C++组试题 第2题 求完数(刘昕源) */ #include<cstdio> int main(){ int tmp, n, cnt = 0; scanf("%d", &n); for(int i = 1; i <n; i++ ){ tmp = 0; for(int j = 1; j < i; j++ ){ if(i % j == 0) tmp += j; } if(tmp == i) { printf("%d\n", i); cnt++; } } printf("*%d\n",cnt); return 0; }
/* 第十一届蓝桥杯省赛C++组试题 第2题--蒋长灵 */ #include<iostream> #include <bits/stdc++.h> using namespace std; int main() { int n,sum=0,kp=0; cin>>n; for(int i=1;i<n;i++) { sum=0; //容易忘记归0 for(int j=1;j<i;j++) { if(i%j==0) { sum+=j; } } if(sum==i) { cout<<i<<endl; kp+=1; } } cout<<"*"<<kp<<endl; return 0; }