#include<stdio.h> int main() { int N,i,j,sn,s[1000],k,l; scanf("%d", &N); for(i=2;i<=N;i++) { for(sn=0,j=1,k=0;j<=i/2;j++)//变成到i/2可以不超时 { if((i%j)==0) { sn=sn+j; s[k++]=j; } } if(sn==i) { printf("%d its factors are ",i); for(l=0;l<k;l++) {printf("%d ",s[l]);} printf("\n"); } } return 0; }
#define max 1001 有没有大佬告诉我这个是什么意思
幸 2023-02-22 17:03:41 |
宏定义意思等同于max = 1001,如果下面用的比较的宏定义是很方便的
为什么把你的代码提交上去却超时了
uq_47536912922 2023-02-06 15:11:44 |
#include<stdio.h> void wanshu(int n) { int i,j=0; int b=0; int a[n]; for(i=1;i<n;i++) { if(n%i==0) { a[j]=i; b+=a[j]; j++; } } if(b==n)//判断是否为完数 { printf("%d its factors are ",n); for(i=0;i<j;i++) { printf("%d ",a[i]); a[i]=0; } printf(" "); } } int main() { int i; int n; scanf("%d",&n); for(i=2;i<=n;i++) { wanshu(i); } return 0; }
十九 2023-02-08 15:16:51 |
精简一下能到900ms
求个大佬告诉我为什么错啊 #include <stdio.h> int main() { int n,i,j,ch[100]={0},m=0,x=0; scanf("%d",&n); for(i=2;i<=n;i++) { for(j=1;j<=i/2;j++) { if(i%j==0) {m+=j;ch[x++]=j;} } if(m==i) { printf("%d its factors are ",i); for(x=0;ch[x]!=0;x++) printf("%d ",ch[x]); printf("\n"); } m=0;x=0;ch[100]={0}; } return 0; }
为什么非得用两个循环啊? #include<stdio.h> #define max 1001 int main(){ int n,i,j,a[max],l; int tem=0,k=0; scanf("%d",&n); for(j=1; j<n; j++) { if(n%j==0) {//满足条件 tem+=j;//储存因子之和 a[k++]=j;//储存因子 } } if(tem==n) {//满足条件 格式输出 printf("%d its factors are ",tem); for(l=0;l<k;l++){ printf(" %d",a[l]); } printf("\n"); } return 0; }
int i; int j; int k; int a[1000]; int l=0; scanf("%d", &j); for (i = 1; i <= j; i++) { int sum = 0; int n = 0; for (k = 1; k <= i; k++) { if (i % k == 0) { a[n++] = k; sum = sum + k; } } if (sum == i) { printf("%d its factor are ",i); for (l=0;l < n;l++) { printf("%d", a[l]); } printf("\n"); } } return 0; 为什么我的代码是错的?
坚果 2022-12-27 17:18:58 |
for(k=1;k<i;k++) 加的因子不包括它本身 for(l=0;l<i;l++)把n改成i 输出完数的因子
为啥这个不能运行求解 #include <stdio.h> int main() { int a=0,n=0,x=1,i=1,c=0,sum=0; int str[40]; scanf("%d",&n); for(x=1;x<n;x++) { for(i=1;i<x;i++) { while(x%i==0) { str[c]=i;//将因子放入数组 c++; break;}//获取数组的大小 a=c; } for(i=0;i<a;i++)//用循环将因子个数相加得到为sum { sum+=str[i]; } if(x==sum)//判断n是否为完数 { printf("%d its factors are ",x); for(i=0;i<a;i++)//循环输入因子 {printf(" %d",str[i]);} printf("\n"); } sum=0; c=0; } return 0; }
可是题目不是没有说n是小于1000的呀,为什么数组要设在1001捏,如果要求输入超过1000的咋办
周五 2022-11-05 21:08:23 |
没事了我眼花了,我懂了
顾自 2022-11-13 14:56:51 |
为啥我这个编码不能运行#include <stdio.h> int main() { int a=0,n=0,x=1,i=1,c=0,sum=0; int str[40]; scanf("%d",&n); for(x=1;x<n;x++) { for(i=1;i<x;i++) { while(x%i==0) { str[c]=i;//将因子放入数组 c++; break;}//获取数组的大小 a=c; } for(i=0;i<a;i++)//用循环将因子个数相加得到为sum { sum+=str[i]; } if(x==sum)//判断n是否为完数 { printf("%d its factors are ",x); for(i=0;i<a;i++)//循环输入因子 {printf(" %d",str[i]);} printf(" "); } sum=0; c=0; } return 0; }
剔除相关数 (C语言代码)浏览:1058 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:481 |
WU-输入输出格式练习 (C++代码)浏览:1133 |
有关字符,字符串的输入输出函数说明浏览:498 |
简单的a+b (C语言代码)浏览:491 |
【计算直线的交点数】 (C语言代码)浏览:986 |
简单的a+b (C语言代码)浏览:597 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:552 |
P1002 (C++代码)浏览:794 |
计算质因子 (Java代码)浏览:789 |