题目来源:码蹄集
https://matiji.net/exam/brushquestion/273/778/B3FCFEC101BD05189BB74D522E019504
时间限制:1000ms
内存限制:65535kb
题目描述:数学中,两个素数的乘积所得的自然数我们称之为半素数,也叫“双素 数”,输入一个正整数,输出0到N之间(包括N)所有双素数。注意1不 是双素数。不考虑0,负数等特殊情况。
输入格式:输入整型
输出格式:输出整型,空格分隔。
输入样例:26
输出样例:4 6 9 10 14 15 21 22 25 26
参考程序:
#include <iostream>
using namespace std;
bool IsPrime(int x)
{
if(x == 1)return false;
for(int i = 2; i * i <= x; i ++)
if(x % i == 0)
return false;
return true;
}
int main()
{
int n;
cin >> n;
for(int i = 2; i <= n; i ++)
for(int j = 2; j * j <= i; j ++)
if(i % j == 0 && IsPrime(j) && IsPrime(i / j))
cout << i << " ";
return 0;
}