 Computer Science Canada Programming C, C++, Java, PHP, Ruby, Turing, VB   Username:   Password: Wiki Blog Search Turing Chat Room Members
LCD,GCM       Author Message
MysticAngel  Posted: Sun Apr 06, 2003 10:13 am   Post subject: (No subject)

l how would u frame the code ?    yuethomas  Posted: Sun Apr 06, 2003 11:27 am   Post subject: (No subject)

Oh sorry, I misunderstood.

I don't know of any algorithms, so I'll use a dumb one here...

 code: % checking proper factors of a var a : int := 30 var sum : int := 0 % an optimisation note: when a is odd % the largest factor cannot exceed a/3; % when a is even it cannot exceed a/2. if floor(a/2) = a/2 then % checks for parity     for b : 2 .. floor (a/2)     % even though a/2 is an integer,     % I doubt a/2 will return a variable     % of type integer... so just wrap it     % in a function that returns a integer.         if floor (a/b) = a/b then sum += b     end for else % a is odd     for b : 3 .. ceil (a/3)     % now a isn't necessarily divisible by     % 3, so take the larger value here     % just to be safe         if floor (a/b) = a/b then sum += b     end for end if put "SUM OF PROPER FACTORS OF ", a, " IS ", b Prince  Posted: Mon Apr 07, 2003 10:02 am   Post subject: (No subject)

 code: function properFactors (n : int) : int     var x, y, temp : int := 0     for decreasing i : n .. 1 by 1         x := n mod i         if x = 0 then             y := n div i             if y not= n then                 temp := temp + y             end if         end if     end for     result temp end properFactors

now doesnt that seem a whole lot simpler... it works too  Prince  Posted: Mon Apr 07, 2003 10:04 am   Post subject: (No subject)

btw, yuethomas, proper factors do include 1 yuethomas  Posted: Mon Apr 07, 2003 4:35 pm   Post subject: (No subject)

My mistake. MysticAngel  Posted: Wed Apr 09, 2003 9:19 pm   Post subject: (No subject)

Can u plz check my code. It is supposed to give the reverse of a number.
eg. 72--27

 code: function reverse (n:int) : int     var digits,sum,r : int     var count : int := 0     loop         digits := n mod 10         r := n div 10         count := count + 1                exit when count >= 0     end loop        result digits end reverse Asok  Posted: Wed Apr 09, 2003 9:27 pm   Post subject: (No subject)

I believe that was allready posted for reversing numbers, actually I guarantee it. Search the forums. MysticAngel  Posted: Wed Apr 09, 2003 9:35 pm   Post subject: (No subject)

but u are using instr... which i dont want to use, there are errors there anyways..... i know how to do it without the function. but when i use the function i get a bit confused like what to ouput. my code gives out i think just the first reverse number. can u plz check it code: function reverse (n:int) : int     var digits,sum,r : int     var count : int := 0     loop         digits := n mod 10         r := n div 10         count := count + 1                exit when count >= 0     end loop        result digits end reverse    yuethomas  Posted: Wed Apr 09, 2003 9:46 pm   Post subject: (No subject)

 code: function reverse (n:int) : int     var digits : int     var count : int := 0     var r: int := n     loop         digits := digits * 10 + r mod 10         r := r div 10         exit when r = 0            end loop     result digits end reverse

Edit: (thank you Tony) Tony  Posted: Wed Apr 09, 2003 9:49 pm   Post subject: (No subject)

well its all wrong.

it will result in n mod 10 which is the remainder of n after dividing by 10. Since your exit statment will get you out of loop right away. I dont even understand what you're trying to do first of all... to get the number of digits, you keep on dividing by multiples of 10 until your result is <= 0.

after that, you go in revese order starting with the largest digit, divide it by 10**(digit - 1). Floor it into int value and you get isolated digit. Then add it to new varaible, but first you need to multiply it by a multiple of 10 to place it in the right spot.

Ah damn, yuethomas beat me to it with a working code... I'm giving some bits for the help  Tony's programming blog. DWITE - a programming contest. MysticAngel  Posted: Wed Apr 09, 2003 9:55 pm   Post subject: (No subject)

it works the way he said MysticAngel  Posted: Thu Apr 10, 2003 9:59 pm   Post subject: (No subject)

k this function woud return a value that is between 0 and 9. it takes the entered number and adds its digits together. eg. 79 = 7 + 9 = 16 and 1+6 = 7. so the digital root of the 79 is 7. my function is working for some parts. not all thouhg. canu plz check the code ????
 code: function digitalroot (n : int) : int     var digits, count, r, sum : int := 0     loop         count := count + 1         digits := n mod 10         r := n div 10         sum := sum + r         exit when sum >= 0 and sum <= 9            end loop     result sum end digitalroot Prince  Posted: Thu Apr 10, 2003 10:14 pm   Post subject: (No subject)

1. u dont need a count for this one... 2. if ur gonna do it the way u hav it, make it so that sum := digits + r and not sum := sum + digits... heres how i did it

 code: function digitalRoot (var n : int) : int     var a, b, c, x : int := 0     loop         a := n mod 10         n := n div 10         c := c + a         exit when a = 0     end loop     a := c div 10     b := c mod 10     x := a + b     result x end digitalRoot

im no good at explainin things so im not gonna start here (even tho its my code )... if i can remember wat i was thinkin wen i made this ill repost Prince  Posted: Fri Apr 11, 2003 10:08 am   Post subject: (No subject)

looking at ur code again, and actually testing it this time, ive found ur error:

 code: digits := n mod 10 r := n div 10 sum := sum + r  % error on this line exit when sum >= 0 and sum <= 9

it happens wen u split the number apart... since r is between 0 and 9 already, adding it to sum (which is 0) does nothing... wat it should b doing is split the number then add digits and r until they r a single digit MysticAngel  Posted: Tue Apr 15, 2003 6:24 pm   Post subject: (No subject)

How would i do the same thing for three or more numbers
 code: function Sumofsquares (n : int) : int     var a, b, d : int := 0     a := n mod 10     b := n div 10     d := a ** 2 + b ** 2     result d end Sumofsquares Display posts from previous: All Posts1 Day7 Days2 Weeks1 Month3 Months6 Months1 Year Oldest FirstNewest First        Page 3 of 4  [ 51 Posts ]
Goto page Previous  1, 2, 3, 4  Next
 Jump to:  Select a forum  CompSci.ca ------------ - Network News - General Discussion     General Forums   -----------------   - Hello World   - Featured Poll   - Contests     Contest Forums   -----------------   - DWITE   - [FP] Contest 2006/2008   - [FP] 2005/2006 Archive   - [FP] 2004/2005 Archive   - Off Topic     Lounges   ---------   - User Lounge   - VIP Lounge     Programming -------------- - General Programming     General Programming Forums   --------------------------------   - Functional Programming   - Logical Programming   - C     C   --   - C Help   - C Tutorials   - C Submissions   - C++     C++   ----   - C++ Help   - C++ Tutorials   - C++ Submissions   - Java     Java   -----   - Java Help   - Java Tutorials   - Java Submissions   - Ruby     Ruby   -----   - Ruby Help   - Ruby Tutorials   - Ruby Submissions   - Turing     Turing   --------   - Turing Help   - Turing Tutorials   - Turing Submissions   - PHP     PHP   ----   - PHP Help   - PHP Tutorials   - PHP Submissions   - Python     Python   --------   - Python Help   - Python Tutorials   - Python Submissions   - Visual Basic and Other Basics     VB   ---   - Visual Basic Help   - Visual Basic Tutorials   - Visual Basic Submissions     Education ----------- - Student Life   Graphics and Design ----------------------- - Web Design     Web Design Forums   ---------------------   - (X)HTML Help   - (X)HTML Tutorials   - Flash MX Help   - Flash MX Tutorials   - Graphics     Graphics Forums   ------------------   - Photoshop Tutorials   - The Showroom   - 2D Graphics   - 3D Graphics     Teams ------ - dTeam Public

 Style: Appalachia blueSilver eMJay subAppalachia subBlue subCanvas subEmjay subGrey subSilver subVereor Search: