HDU - 1164

这是一个C++程序,用于将输入的正整数分解成素数的乘积。程序首先定义了一个判断素数的函数,然后对每个输入的数字进行分解,如果数字本身是素数,则直接输出,否则将其分解为素数乘积并打印出来。示例输入和输出已给出,程序处理的数字范围在1到65535之间。

HDU - 1164
埃迪的兴趣非常广泛,最近他对素数感兴趣。埃迪发现所有的数都可以被分成素数的乘法,但他不会写程序,所以埃迪只好请聪明的你帮他,他请你写一个能把数分成素数乘因子的程序。

输入

输入每行包含一个数字1<x<=65535,表示集合的元素数。

输出

您必须在输出中为每个条目打印一行,其中包含对上一个问题的答案。
Sample Input
11
9412

Sample Output
11
2213*181

#include<iostream>
#include<string>
using namespace std;
bool issushu(int x)
{
	for (int i = 2; i <= x / 2; i++)//int i=1错了,i==1任何X都能整除它.
	{
		if (x % i == 0)
			return false;
	}
	return true;
}
int main()
{
	int n;
	while (cin >> n)
	{
		if (issushu(n))cout << n << '\n';
		else
		{
			while (n != 1)
			{
				for (int i = 2; i <= n; i++)
				{
					if (n % i == 0)
					{
						if (issushu(i))
						{
							n /= i; cout << i;
							if (n != 1)cout << "*";
							break;
						}
					}
				}


			}cout << '\n';
		}
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值