从键盘读入一个整数n(n<=100),请求出1~n的每个数的因子个数(求因子个数时,不含1和自己,比如10只有2个因子),每行一个打印出来。

WANGYUZHEN王玉镇 2021-04-18 05:30:50
问题 B: 求因子数量
[命题人 : 201311020139]
时间限制 : 1.000 sec 内存限制 : 128 MB

题目描述
从键盘读入一个整数n(n<=100),请求出1~n的每个数的因子个数(求因子个数时,不含1和自己,比如10只有2个因子),每行一个打印出来。
输入
一个整数n
输出
n行,每行一个整数,代表了每个整数的因子个数
样例输入 Copy
10
样例输出 Copy
0
0
0
1
0
2
0
2
1
2
...全文
2019 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
czwm 2021-11-23
  • 打赏
  • 举报
回复

这个才是

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,i,j,k,c[100]={0};
    cin>>n;
    for(i=1;i<=n;i++)
    {
        for(j=2;j<i;j++)
        {
            if(i%j==0)
            {
                c[i]++;
            }
        }
    }
    for(i=0;i<n;i++)
    {
        cout<<c[i]<<endl;
    }
    return 0;
}


jwysd. 2022-07-25
  • 举报
回复
@czwm 你这个没有求出n的因子数量,题目要求求因子数量,根据“包头不包尾原则”,浅浅帮你改一下~ #include&lt;bits/stdc++.h&gt; using namespace std; int main() { int n,i,j,k,c[100]={0}; cin&gt;&gt;n; for(i=1;i&lt;=n;i++) { for(j=2;j&lt;i;j++) { if(i%j==0) { c[i]++; } } } for(i=0;i&lt;=n;i++) { cout&lt;&lt;c[i]&lt;&lt;endl; } return 0; } 虽然你下面改了,但俺看着不顺眼@_@
czwm 2021-11-23
  • 打赏
  • 举报
回复

呸发错惹

czwm 2021-11-23
  • 打赏
  • 举报
回复

这样?

#include<bits/stdc++.h>
using namespace std;
int main() {
    int m,n,i,j,c=0,h=0;
    cin>>m>>n;
    for(i=m+1;i<n;i++)
     {
        c=0;
        for(j=2; j<=sqrt(i); j++) {
            if(i%j==0) {
                c++;

            }
        }
        if(c==0) {
            h++;
        }
    }

    cout<<h;

    return 0;
}


ZWW975 2021-04-27
  • 打赏
  • 举报
回复
本来看懂题目了,但是看了你后面的例子,我又不懂了
  • 打赏
  • 举报
回复
例子是对的,1=0,2=0,3=0,4=1(2*2)...
引用 5 楼 ZWW975 的回复:
本来看懂题目了,但是看了你后面的例子,我又不懂了
源代码大师 2021-04-26
  • 打赏
  • 举报
回复
C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html
  • 打赏
  • 举报
回复
简单,可参修改:和=0,和+=(求!=商?2:1),++求。即可。
qzjhjxj 2021-04-18
  • 打赏
  • 举报
回复
供参考:
#include<stdio.h>

int fac_cnt(int n){
    int a=2,cnt=0;
    while(a <= n/2){
         if(n%a==0)
            cnt++;
         a++;
    }
    return cnt;
}


int main()
{
     int n,i=1;
     scanf("%d",&n);
     while (i<=n){
           printf("%d\n",fac_cnt(i));
           i++;
     }
     
     return 0;
}
  • 打赏
  • 举报
回复
哪位大佬能回答,小白我将感激不尽。
czwm 2021-11-23
  • 举报
回复
@WANGYUZHEN王玉镇 回啦

65,201

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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