《求完全数》
【問(wèn)題描述】
一個(gè)整數(shù),如果其所有小于它本身的因子(包括1)之和正好等于該數(shù),則稱其為"完全數(shù)"。編寫程序計(jì)算某一范圍內(nèi)的所有"完全數(shù)"。
【輸入形式】
從控制臺(tái)輸入數(shù)據(jù)范圍的下限m和上限n,m和n都為整數(shù),且1<=m<=n<=10000,m和n之間用一個(gè)空格分割。
【輸出形式】
向控制臺(tái)輸出m和n之間的所有"完全數(shù)"(包括m和n本身),所有輸出的數(shù)據(jù)以從小到大的順序顯示在一行上,各數(shù)之間以一個(gè)空格分割。若該范圍內(nèi)沒(méi)有完全數(shù),則輸出字符串No Answer。
【樣例1輸入】
1?100【樣例1輸出】
6?28【樣例1說(shuō)明】
在1到100之間,因?yàn)橹挥?#xff1a;6=1+2+3,28=1+2+4+7+14,滿足完全數(shù)的要求,所以輸出6和28,它們中間以一個(gè)空格分割。
【樣例2輸入】
100?200【樣例2輸出】
No?Answer【樣例2說(shuō)明】
在100到200之間,因?yàn)闆](méi)有完全數(shù),所以輸出No Answer。
【評(píng)分標(biāo)準(zhǔn)】
共有5個(gè)測(cè)試點(diǎn)。
#include<stdio.h>
int f(int a)
{?? ?
?? ?int b,c=0;
?? ?for(b=1;b<=a;b++)
?? ?{
?? ??? ?if(a%b==0&&b!=a)
?? ??? ?c=c+b;?? ?
?? ?}
?? ?return c;
}
int main()
{
?? ?int m,n,p,q,t=0;
?? ?scanf("%d %d",&m,&n);
? ?? ?for (p=m;p<=n;p++)
?? ?{
?? ??? ?q=f(p);
?? ??? ?if (p==q)
?? ??? ?{
?? ??? ??? ?printf("%d ",p);
?? ??? ??? ?t=1;
?? ??? ?}
?? ?}
?? ?if (t==0)
?? ??? ?printf("No Answer\n");
?? ?return 0;
}
總結(jié)
- 上一篇: 【前端】行间样式、内部样式和外链样式,选
- 下一篇: DW常用标签介绍