/* * lt1e.c Laboratory test I for students working on even number machines. */ #include #define TRUE 1 #define FALSE 0 float pow1p5(float); int main() { int n, m, absN, sum, prime, i; // Task 1 printf("Enter an integer: "); scanf("%d", &n); if(n%19 == 0) m = n; else if (n < 0) m = n/19*19; else m = (n + 19) - n%19; printf("\nm: %d \n", m); // Task 2 sum = 0; absN = (n < 0)? -n:n; while(absN){ sum = sum + absN % 10; absN = absN / 10; } printf("Sum of digits of %d = %d\n", n, sum); // Task 3 absN = (n < 0)? -n:n; if(absN == 0 || absN == 1) printf("2 is the smallest prime >= |%d|\n", n); else { while(1){ prime = TRUE; for(i=2; i<=absN/2; ++i){ if(absN%i == 0){ prime = FALSE; break; } } if(prime) break; else absN = absN + 1; } printf("%d is the smalest prime >= |%d|\n", absN, n); } // Task 4 printf("|%d|^1.5 = %f\n", n, pow1p5((n < 0)?-n:n)); return 0; } float pow1p5(float x){ float x0, x1, err, x1Abs ; if(x == 0.0) return 0.0; x0 = x/2; do { x1 = x0 - (x0*x0 - x)/2.0/x0; err = x1 - x0; err = (err < 0)? -err: err; x1Abs = (x1 < 0)? -x1: x1; x0 = x1; } while(err > 0.0001*x1Abs/100.00); return x*x1; }