// ************************** // * Perfektna števila * // * 20.3.2007 * // * Jernej Virag * // ************************** #include #include int Delitelji(int stevilo) //najde delitelje števila in vrne seštevek { int koren; int sestevek=0,i; int deljeno; //hitreje, če samo enkrat računamo koren=sqrt(stevilo); //poiščemo delitelje do korena števila printf("(%d)\r",stevilo); for (i=1;i<=koren;i++) { if(stevilo%i==0) { sestevek+=i; deljeno=stevilo/i; if (deljeno!=stevilo) //če bomo prišteli samo število sestevek+=deljeno; //ne bomo nikoli zadostili pogoju //printf("%d %d ",i,stevilo/i); } } //printf("Sestevek %d.\n",sestevek); return sestevek; } int main(int argc, char* argv[]) { if (argc<2) {printf ("Vpišite število!\n"); return -1;} int stevilo = atoi(argv[1]); int i; for (i=1; i<=stevilo; i++) if (Delitelji(i)==i) printf("Najdeno število: %d \n",i); printf("Končano.\n"); return 0; }