所有做URAL的编程者OR(自认为)奥数很厉害的人!请!

来源:百度知道 编辑:UC知道 时间:2024/09/28 14:11:40
简称;URAL1049

(背景:十个数学家乘气球飞行在太平洋上空。当横越赤道时,他们决定庆祝一下这一壮举。于是他们开了一瓶香槟。不幸的是,软木塞在气球上打了一个洞,氢气泄漏,气球开始下降,眼看就要落入海中,所有人将要被鲨鱼吃掉。 )

但是尚有一线生机--若其中一人牺牲自己跳下去的话,那他的朋友们还能多活一会儿。但仍然有一个问题存在--谁跳下去?所以他们想了一个非常公平的办法来解决这个问题--首先,每人写一个整数ai(1≤ai≤10000);然后计算出a1×a2×a3×a4×……×a10的积的约数的个数N。例如,6的约数有4个(1、2、3、6),则N为4。这位牺牲自己的英雄将由N的个位数来决定(编号为N的个位数加1的人要跳下去)。你的任务是求出N。

Sample Input
1
2
6
1
3
1
1
1
1
1

Sample Output
9
也就是说,求一个数的约数的公式。
如果你是编程高手的话,我只要求思路,不要求答案并且是要快!
如果你是(自认为)奥数天才的话,我要公式,并且一定要是正确的。

首先,有一个循环也就是 0到9 循环十次 接受十个数并将十个数相乘的积S 然后 到到下一个循环 这个循环的条件是(N)1到S 在这个循环里边有个IF 语句 判断 S取整 N 如果成立 (I初始值为0)I加1 否则N+1 继续循环 最后输出 I 旧可以了啊 !

这么点分谁给你算呀:-(

最简单的办法用循环就行了啊,从1到a1×a2×a3×a4×……×a10如果能被a1×a2×a3×a4×……×a10除尽就说明它是a1×a2×a3×a4×……×a10的约数,然后再累加得到N,但是这个N极有可能大于10,所以还要判断一下如果大于10了,可以让他们重新选择ai,不过这样做对第二个人很不公平,因为他被选到的概率很大