pintia上的题目 ,求助
一个正整数如果恰好等于它的因子之和,这个数就称为“完数”。例如6的因子为1,2,3,而6=1+2+3,因此6是“完数”。编程序找出不大于N(N>=0)的所有完数。#include<stdio.h>
int main(){
int N,a,b,s=0;
scanf("%d",&N);
if(N<=0){
printf("error data");
exit(0);
}
for(a=1;a<=N;a++){
b=1;
while(b<a){
if(a%b==0){
s=s+b;
}
b=b+1;
}
if(a==s)
printf("%5d",a);
}
return 0;
}
为什么我这输入1000,输出的总是0,没有预期完数。
for(a=1;a<=N;a++)
{
b=1;
s=0;// s赋0
while(b<a){
if(a%b==0){
s=s+b;
}
b=b+1;
}
if(a==s)
printf("%5d",a);
}
xieglt 发表于 2020-11-10 20:32
我怎么改一下,让他没有完数是输出none 本帖最后由 xieglt 于 2020-11-10 21:11 编辑
936241151 发表于 2020-11-10 21:00
我怎么改一下,让他没有完数是输出none
加个变量
intflag =0;
if(a==s)
{
flag++;
printf.....;
}
循环结束后判断flag是否等于0
页:
[1]