4325: 【基础】丑数判断(1755)
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:1
解决:1
题目描述
素因子都在集合{2 3 5 7}的数称为丑数(ugly number),给定n个整数,请逐个判断每个数是否是丑数,如果是丑数,请输出
Y
,不是丑数请输出N
。输入
第1行读入整数n(n≤20);
第2行给定n个整数(数值在1~109)之间,数字之间用空格隔开。
第2行给定n个整数(数值在1~109)之间,数字之间用空格隔开。
输出
输出n行,第i行输出字符'Y'或者'N'代表第i行读入的整数是否是丑数。
特别的,我们假定整数1也是丑数。
特别的,我们假定整数1也是丑数。
样例输入 复制
5
1 8 11 20 121
样例输出 复制
Y
Y
N
Y
N
提示
#include <iostream> #include <vector> using namespace std; bool isUgly(int num) { if (num <= 0) return false; if (num == 1) return true; int factors[] = {2, 3, 5, 7}; for (int i = 0; i < 4; ++i) { while (num % factors[i] == 0) { num /= factors[i]; } } return num == 1; } int main() { int n; cin >> n; vector<int> numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } for (int i = 0; i < n; ++i) { if (isUgly(numbers[i])) { cout << "Y" << endl; } else { cout << "N" << endl; } } return 0; }