c++代码求调 谢谢大佬

cfm1234567 2024-02-10 21:16:45
#include<bits/stdc++.h>
using namespace std;
int ans=0,cnt=0;
int yinshu(int a){
  for(int i=1;i<=a;i++){
    if(a%i==0) ans++;
  }
}
int youxiushu(int b){
  for(int i=1;i<=b;i++){
    if(yinshu(i)<=4){
      cnt++;
    }
    ans=0;
  }
  return cnt;
}
int main(){
  int n;
  cin>>n;
  cout<<youxiushu(n);
}

来源:信友队上【语法】循环嵌套第七题(XJOI 7970)

原题:

时间限制: 1000ms

空间限制: 524288kB

题目描述

时间限制:0.2 内存限制:32M

描述:

小马希望你帮助确定一个数字是否好。

他认为一个数是极好的当且仅当它的因数不超过四个。

找出小于或等于 n 的优秀数的总数。

 

输入:

一个正整数 n

 

输出:

表示答案的数字。

 

样本输入 1:

5

样本输出 1:

5

约束:

1<=n<=100000

...全文
3551 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
coarok 02-13
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;

bool isGood(int n) {
    int count = 0;
    for (int i = 1; i * i <= n; i++) {
        if (n % i == 0) {
            count++;
            if (i != n / i) {
                count++;
            }
        }
    }
    return count <= 4;
}

int main() {
    int n;
    cin >> n;
    int ans = 0;
    for (int i = 1; i <= n; i++) {
        if (isGood(i)) {
            ans++;
        }
    }
    cout << ans << endl;
    return 0;
}
  • 打赏
  • 举报
回复

yinshu函数应当有一个返回值。可在函数内部设置一个变量y,把ans++改成y++,最后return y。

  • 打赏
  • 举报
回复 1

你的第一个函数是不是没有返回值

69,512

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧