Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- long readNumber();
- long isPrime(long num);
- void primeFactors(long zahl);
- long perfekt(long x);
- int main()
- {
- long x;
- char yn;
- isPrime(1);
- do{
- x = readNumber();
- printf("\nZahl %ld prime test: %ld", x, isPrime(x));
- primeFactors(x);
- if(perfekt(x) == x)
- {
- printf("\n\nDiese Zahl ist Perfektzahl.");
- }
- else
- {
- printf("\n\nDiese Zahl ist nicht Perfekt Zahl.");
- }
- printf("\n\nNocmals(y/n): ");
- scanf(" %c", &yn);
- }while(yn == 'y');
- return 0;
- }
- long readNumber()
- {
- long i;
- printf("\nGeben Sie eine ganze Zahl ein: ");
- scanf("%ld", &i);
- return i;
- }
- long isPrime(long num)
- {
- long i, t;
- static long feld [101];
- if(feld[1] == 0)
- {
- feld[0] = 0;
- feld[1] = 1;
- feld[2] = 1;
- feld[3] = 1;
- for(t=4; t<=100; t++)
- {
- feld[t] = 2;
- for(i=2; i*i<=t; i++)
- {
- if(!(t%i))
- {
- feld[t] = 0;
- }
- }
- if (feld[t] == 2)
- {
- feld[t] = 1;
- }
- }
- return 0;
- }else if(num>100)
- {
- for(i=2; i*i<=num;i++)
- {
- if(!(num%i))
- {
- return 0;
- }
- }
- return 1;
- }
- else if(num<0)
- {
- return -1;
- }
- else
- {
- return feld[num];
- }
- /*y = num/2;
- if(num<0)
- {
- //printf("\nKein Primzahl!");
- return -1;
- }
- for(i=2; i<=y; i++)
- {
- if(num%i == 0)
- {
- //printf("\nKein Primzahl!");
- return 0;
- }
- }
- //printf("\nEs ist Primzahl");
- return 1;*/
- }
- void primeFactors(long zahl)
- {
- long i;
- printf("\n\n**Primefaktorenzerlegung**\n\n");
- if((isPrime(zahl)) == 1)
- {
- printf("\n%ld ist eine Primzahl!\n", zahl);
- }
- else
- {
- printf("\n%ld = ", zahl);
- for(i=2; i*i<=zahl; i++)
- {
- if(!(zahl%i))
- {
- zahl = zahl/i;
- printf("%ld*", i--);
- }
- }
- printf("%ld", zahl);
- }
- }
- long perfekt(long x)
- {
- long i;
- long p=0;
- printf("\n\n*Perfektzahlen*\n\n");
- for(i=1; i<x; i++)
- {
- if((x%i) == 0)
- {
- p = p + i;
- }
- }
- return p;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement