Chiro


私信TA

用户名:21000916Chiro

访问量:708

签 名:

下面有人拿快排过堆排的题,我不(9)说(1)是(5)谁

等  级
排  名 4633
经  验 1602
参赛次数 0
文章发表 4
年  龄 0
在职情况 学生
学  校 广东工业大学
专  业

  自我简介:

TA的其他文章

母牛的故事
浏览:99

解题思路:

void cheaknum(int n)//利用vector储存所有N以内每个数的因子,检查满足条件就打印

注意事项:

现在研究出来的完数均是偶数,所以先判断是否是偶数偷懒可以有效减少运算时间
参考代码:

#include<iostream>

#include<vector>

using namespace std;

void cheaknum(int n)

{ vector<int> factor(1);

int sum = 0;

factor[0] = 1;

for (int f1 = 2; f1 <= (n / 2); f1++) {

if ((n % f1) == 0) {

factor.push_back(f1);

}

}

for (vector<int>::iterator it = factor.begin(); it != factor.end(); it++)

{

sum = sum + (*it);

}

if(sum==n) {

cout << n << " " << "its factors are" << " ";

for (vector<int>::iterator it = factor.begin(); it != factor.end(); it++)

{

cout << *it << " ";

}

cout << endl;

}

}

int main(){

int n;

cin >> n;

for (int a = 2; a <= n; a++) {

if (a % 2 == 0) {

cheaknum(a);

}

}

}


 

0.0分

1 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答

代码解释器

  评论区

帮我看看,我这个问题出在哪呢
#include<iostream>
using namespace std;
#include<vector>
int main()
{
   vector<int> v;
   int n;
   cin >> n;
   for(int i = 6; i<=n;i++)
   {
       int sum = 0;
       for(int j = 1; j<=i/2;j++)
       {
           if(i%j ==0)
           {
               v.push_back(j);
           }
       }
       for(vector<int>::iterator it = v.begin();it !=v.end();it++ )
       {
           sum += *it;
       }
       if(sum == i)
       {
           cout << i << "its factors are"<< " ";
            for(vector<int>::iterator it = v.begin();it !=v.end();it++ )
           {
               c
2023-04-14 21:48:24
  • «
  • 1
  • »