[ZEP] 7-45 find End Number (20 minutes)

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

Publié 48 articles originaux · louanges gagnées 0 · Vues 298

Je suppose que tu aimes

Origine blog.csdn.net/weixin_46399138/article/details/105423685
conseillé
Classement