#include<stdio.h>
int main()
{
int N, i, j;
scanf("%d", &N);
for (i = 2; i <= 1000; i++) {
int sum = 0;
for (j = 1; j <= i - 1; j++) {
if (i % j == 0) {
sum += j;
}
}
if (sum == i) {
printf("%d its factors are ", i);
for (j = 1; j <= i - 1; j++) {
if (i % j == 0) {
printf("%d ", j);
}
}
printf("\n");
}
}
}
求个大佬!
这个运行结果和题目的样例一样,为什么错误啊
#include<stdio.h>
int main()
{
int a;
scanf("%d", &a);
for (int i = 1; i <= a; i++)
{
int b = 0;
for (int j = 1; j < i; j++)
{
if (i % j == 0)
{
b += j;
}
}
if (b == i)
{
printf("%d its factors are ", i);
for (int k = 1; k < i; k++)
{
if (i % k == 0)
{
printf("%d ",k);
}
}
printf("\n");
}
}
return 0;
}
#include<stdio.h> int main() { int N, i, j; scanf("%d", &N); for (i = 2; i <= 1000; i++) { int sum = 0; for (j = 1; j <= i - 1; j++) { if (i % j == 0) { sum += j; } } if (sum == i) { printf("%d its factors are ", i); for (j = 1; j <= i - 1; j++) { if (i % j == 0) { printf("%d ", j); } } printf("\n"); } } } 求个大佬! 这个运行结果和题目的样例一样,为什么错误啊#include<stdio.h> int main() { int a; scanf("%d", &a); for (int i = 1; i <= a; i++) { int b = 0; for (int j = 1; j < i; j++) { if (i % j == 0) { b += j; } } if (b == i) { printf("%d its factors are ", i); for (int k = 1; k < i; k++) { if (i % k == 0) { printf("%d ",k); } } printf("\n"); } } return 0; }#include<stdio.h> int main() { int n,i,s,a[100],m; scanf("%d",&n); for(i=1;i<=n;i++) { s=m=0; for(int k=1;k<i;k++) { if(i%k==0) { a[m]=k; s+=a[m]; m++; } } if(s==i) { printf("%d its factors are ",i); for(int z=0;z<m;z++) { printf("%d ",a[z]); } printf("\n"); } } getchar(); getchar(); return 0; }//不知道为什么我的时间超限了有大佬指点为什么错了么,运行测试都没问题,没明白 #include<stdio.h> int test(int x,int y) { if(y%x==0) return 0; else return 1; } int main() { int a,sum=0,b[100]={0},c=0; scanf("%d",&a); for(int i=1;i<a;i++) { if(test(i,a) == 0) { b[c]=i; sum += i; c++; } } if(sum == a) { printf("%d its factors are ",a); for(int i=0;i<c;i++) printf("%d ",b[i]); } return 0; }#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; }