A33828. 提示信息因数:整数A乘以整数B得到整数C,整数A与整数B都称做整数C的因数。一个自然数如果除了1和它本身没有其他因数叫做质数。如果除了1和它本身还有别的因数叫做合数。例如:3是质数(因数1和3),6是合数(因数1,2,3,6)。编程实现输入一个正整数n(3 ≤ n ≤ 100),请编程求出具有n个不同因数的最小合数,并输出。例如:n=3,含有3个不同因数的合数有:4,9,25,49......,…
填空题
困难
知识点
题目描述
提示信息
因数:整数A乘以整数B得到整数C,整数A与整数B都称做整数C的因数。
一个自然数如果除了1和它本身没有其他因数叫做质数。如果除了1和它本身还有别的因数叫做合数。
例如:3是质数(因数1和3),6是合数(因数1,2,3,6)。
编程实现
输入一个正整数n(3 ≤ n ≤ 100),请编程求出具有n个不同因数的最小合数,并输出。
例如:n=3,含有3个不同因数的合数有:4,9,25,49......,其中最小的合数为4
输入
输入一个正整数(3 ≤ n ≤ 100)
输出
输出 具有n个不同因数的最小合数
样例输入
3
样例输出
4
参考答案
// 参考代码1
#include <algorithm>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <queue>
#include <string.h>
#include <vector>
using namespace std;
#define INF 0x7f
int main() {
int ans = 0, n, f = 1, x;
cin >> n;
for (int i = 3; i < 50000 && f; i++) {
for (int j = 1; j < 50000 && f; j++) {
if (i % j == 0) {
ans++;
}
if (ans == n) {
f = 0;
x = i;
}
}
ans = 0;
}
cout << x;
}答案解析
// 参考代码2
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, k = 1, sum = 0;
cin >> n;
while (true) {
k++;
for (int i = 1; i <= k; i++) {
if (k % i == 0) {
sum++;
}
if (sum == n) {
cout << k << endl;
return 0;
}
}
sum = 0;
}
return 0;
}
上一题
下一题