华为机试第六题:HJ6 质数因子
- 一、网址链接
- 二、题目描述
-
-
- ①描述
- ②输入描述
- ③输出描述
- ④示例一
-
- 三、代码实现
-
-
- ①Java代码实现
- ②C++代码实现
- ③C代码实现
-
一、网址链接 【#|华为机试第六题(HJ6 质数因子)】牛客----https://www.nowcoder.com/ta/huawei
二、题目描述 ①描述
功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )②输入描述
数据范围:1<=n<=2*10 9+14
输入一个整数③输出描述
按照从小到大的顺序输出它的所有质数的因子,以空格隔开。④示例一
输入: 180三、代码实现 ①Java代码实现
输出: 2 2 3 3 5
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String str;
while ((str = bufferedReader.readLine()) != null) {
int number = Integer.parseInt(str);
StringBuffer sb = new StringBuffer();
for (int i = 2;
i <= Math.sqrt(number);
i++) {
if (number % i == 0) {
sb.append(i).append(" ");
number = number / i;
i--;
}
}
sb.append(number).append(" ");
System.out.println(sb.toString());
}
}
}
②C++代码实现
#include
#include
using namespace std;
int main(){
long long n;
cin>>n;
long long s=sqrt(n);
for(long long i=2;
i<=s;
i++){
while(n%i==0){
cout<
③C代码实现
#include
int main(void){
int n;
while(scanf("%d", &n) == 1){
int tmp = n;
for(int i = 2;
i * i <= tmp && n >= i;
i++){
while(n % i == 0){
printf("%d ", i);
n /= i;
}
}
if(n - 1) printf("%d ", n);
putchar('\n');
}
return 0;
}
推荐阅读
- Software|如何在IDEA上设置自定义Scanner scanner = new Scanner(System.in);的快捷键
- #|华为机试第五题(HJ5 进制转换)
- Jsp与Servlet|使用安全 jsp 与 servlet 完成用户登录(登录错误时账号密码回填)。登录成功后才能上传图片的图片管理系统。
- Software|简单的增删改查及数据分页
- 排序算法|两个基本排序算法【选择排序,冒泡排序】【详解】