Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
36
Task/Happy-numbers/Zig/happy-numbers.zig
Normal file
36
Task/Happy-numbers/Zig/happy-numbers.zig
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
const std = @import("std");
|
||||
const stdout = std.io.getStdOut().outStream();
|
||||
|
||||
pub fn main() !void {
|
||||
try stdout.print("The first 8 happy numbers are: ", .{});
|
||||
var n: u32 = 1;
|
||||
var c: u4 = 0;
|
||||
while (c < 8) {
|
||||
if (isHappy(n)) {
|
||||
c += 1;
|
||||
try stdout.print("{} ", .{n});
|
||||
}
|
||||
n += 1;
|
||||
}
|
||||
try stdout.print("\n", .{});
|
||||
}
|
||||
|
||||
fn isHappy(n: u32) bool {
|
||||
var t = n;
|
||||
var h = sumsq(n);
|
||||
while (t != h) {
|
||||
t = sumsq(t);
|
||||
h = sumsq(sumsq(h));
|
||||
}
|
||||
return t == 1;
|
||||
}
|
||||
|
||||
fn sumsq(n0: u32) u32 {
|
||||
var s: u32 = 0;
|
||||
var n = n0;
|
||||
while (n > 0) : (n /= 10) {
|
||||
const m = n % 10;
|
||||
s += m * m;
|
||||
}
|
||||
return s;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue