include 'Math'
num = ""
while num = gets
num.chomp!
num = num.to_i
i = 2
#求质数用最直接的大循环解决
while i <= num #判断条件也可以写成i <= num/2 (i <= Math.sqrt(num))
if num % i == 0
print i.to_s, ' '
num /= i
end
if num % i != 0
i += 1
end
end
print "\n"
end
Ps:这里选用最直接的循环处理,当数字较大时比较费时,可以参考网上的很多其他语言的算法解答。可以参考:
https://program-think.blogspot.com/2011/12/prime-algorithm-1.html
str = ""
while str = gets
str.chomp!
result = []
if str.size >= 8
flag = 0
while flag <= str.size
result << str[flag, 8]
flag += 8
end
if result[result.size-1].size < 8
len = 8 - result[result.size-1].size
for i in 1..len
result[result.size-1] += "0"
end
end
result.each do |item|
if item != "00000000" #可能存在全为0的字符串!
print item, "\n"
end
end
end
if str.size < 8
llen = 8 - str.size
for j in 1..llen
str += "0"
end
if str != "00000000" #可能存在全为0的字符串!
print str, "\n"
end
end
end
Ps:注意!!!以上两题要求的输出均为字符串,但输出格式中无引号,若使用p方法或puts方法,均会由于引号导致系统判别答案错误!!因此此处只能使用print方法!!
num = gets
num = (num.chomp!).to_i
data = []
for i in 0..num-1
data << gets
data[i].chomp!
data[i] = data[i].split(" ")
for j in 0..1
data[i][j] = data[i][j].to_i
end
end
result = []
while num > 0
if result[data[num-1][0]] == nil
result[data[num-1][0]] = data[num-1][1]
elsif result[data[num-1][0]] != nil
result[data[num-1][0]] += data[num-1][1]
end
num -= 1
end
for k in 0..result.size-1
if result[k] != nil
print k, " ", result[k], "\n"
end
end
num = ""
while num = gets
num.chomp!
num.reverse!
result = []
for i in 0..num.size-1
result[i] = num[i].to_i
end
result.uniq!
for j in 0..result.size-1
print result[j]
end
print "\n"
end
str = ""
while str = gets
str.chomp!
num = 0
result = []
for j in 0..str.size-1
result[j] = str[j]
end
result.uniq!
for i in 0..result.size-1
num += 1 if (result[i].ord >= 0) && (result[i].ord <= 127)
end
p num
end
str = ""
while str = gets
str.chomp!
str = str.split(" ")
len = str.size-1
while len >= 0
if len > 0
print str[len], " "
else
print str[len], "\n"
end
len -= 1
end
end
num = gets
result = []
while str = gets
str.chomp!
result.push(str)
end
result.sort!
for i in 0..result.size-1
print result[i], "\n"
end
Ps:对字符串的sort本身就是进行字典排序!
num = ""
while num = gets
num.chomp!
num = num.to_i
number = 0
while num > 0
number += 1 if (num % 2) != 0
num /= 2
end
p number
end