C :: Aufgabe #69

3 Lösungen Lösungen öffentlich

Alle Harshad-Zahlen von 1 bis 100 berechnen

Anfänger - C von Gustl - 13.02.2015 um 12:35 Uhr
Eine natürliche Zahl heißt Harshad-Zahl, wenn Sie durch ihre Quersummer teilbar ist.

Beispiel: 777 ist durch 7 + 7 + 7 = 21 teilbar und ist damit eine Harshad-Zahl.

Schreibe ein Programm welches alle Harshad-Zahlen von 1 bis 100 berechnet und am Bildschirm ausgibt.

Lösungen:

vote_ok
von devnull (8870 Punkte) - 16.02.2015 um 10:09 Uhr
Quellcode ausblenden C-Code
/********************************************
 * harshad.c      Harshad-Zahlen berechnen
 ********************************************/
#include <stdio.h>
#define MAX 100

int sumdig(int number) {
	int sum = 0;
	while (number > 0) {
		sum += number % 10;
		number /= 10;
	}
	return sum;
}

int main() {
    int n;
    printf("Harshad Zahlen 1..%d:\n", MAX); 
	for (n=1; n<=MAX; n++) {
		if (n % sumdig(n) == 0)
			printf(" %d", n);
	}
	printf("\n");
	return 0;
}
vote_ok
von SymTech (1060 Punkte) - 12.03.2015 um 14:23 Uhr
Quellcode ausblenden C-Code
#include <stdio.h>
#include<stdlib.h>
int main() {
            
for (int i = 1; i <= 100; i++)
            if((i % quersumme(i) == 0))
     printf("%d\n", quersumme(i));
    
    return 0;
}

int quersumme(int z) {
    int sum = 0;
    while (z > 0) {
        sum += z % 10;
        z /= 10;
    }
    return sum;
}
vote_ok
von kathleenw (3600 Punkte) - 01.07.2020 um 08:50 Uhr
Quellcode ausblenden C-Code
#include <stdio.h>
#include <math.h>
#include <string.h>

int Quersumme(int zahl);

int main(void)
{
    int i, anzahl;
    
    anzahl = 0;
    
    for (i=1;i<=100;i++){
        if (i%Quersumme(i)==0) {
            printf("%d ", i);
            anzahl = anzahl +1;
        }
    }
    printf("\nEs gibt %d Harshad Zahlen zwischen 1 und 100. \n", anzahl);
}

//Quersumme berechnen
int Quersumme(int zahl)
{
    int laenge, i, summe;
    char buffer[100];
    
    summe = 0;
    
    sprintf(buffer,"%d",zahl);
    laenge = strlen(buffer);
    
    for (i=1;i<=laenge; i++)
    {
        summe =summe + fabs(fmod(zahl/pow(10,i-1),10));
    }
    return summe;
}