Après le numéro du numéro appelé est exactement égal à la somme des facteurs, sauf lui-même. Par exemple: 6 = 1 + 2 + 3, où un facteur de 1, 2, 6. Ce problème exige la programmation pour trouver tous les nombres entre deux nombres entiers positifs quelconques complets m et n.
Format d' entrée:
give entrée deux entiers positifs m et n (1 <m≤n≤10000) dans une rangée, séparés par un espace.
Format de sortie:
numéro progressif de chaque facteur délivré pour compléter une gamme donnée de la forme de factorisation accumulé, dans lequel chaque numéro complet représentant le nombre d'une rangée, et le format du « nombre de bouts factor = facteur 1 + 2 + ... + facteur K », ordre croissant et sont par l' analyse des facteurs. Si vous ne comptez pas dans la plage, la sortie « Aucun ».
entrée de l' échantillon:
230
Exemple de sortie:
6 1 + 2 + 3 =
28 = 1 + 2 + 4 + 7 + 14
#include<stdio.h>
int main()
{
int n,m,i,j,sum,flag=0;//
scanf("%d %d",&n,&m);
for(i=n;i<=m;i++)
{
sum=1;
if(i==1) continue; //1不是完数
for(j=2;j<i;j++)
{
if(i%j==0)
{
sum=sum+j;
}
}
if(sum==i)
{
printf("%d = 1",sum);
for(j=2;j<i;j++)
{
if(i%j==0)
{
printf(" + %d",j);
}
}
printf("\n");
flag=1;
}
}
if(flag==0)
printf("None");
return 0;
}
Connaissance Point: utilisation du drapeau