测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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;

}

上一题 下一题