【转】
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int prim[1000002];
void pri()
{
prim[0] = prim[1] = 0;
for(int i=2; i<=1000000; i++)
prim[i] = i;
for(int i=2; i<500000; i++)
if( prim[i] )
for(int j=2; j*i<=1000000; j++)
prim[j*i] = 0;
}
int main(void)
{
int n,i,q;
pri();
while( scanf("%d",&n) != EOF )
{
i = 0;q = 0;
while(n!=1)
{
if( prim[i] )
{
while( n%prim[i] == 0 )
{
n = n/prim[i];
q++;
}
}
i++;
}
if(q == 2)
printf("Yes/n");
else
printf("No/n");
}
return 0;
}
本文介绍了一个使用C++实现的程序,该程序能够判断输入的整数是否为两个素数的乘积。通过预先计算并存储素数,该程序有效地进行素数分解,最终输出Yes或No。
525

被折叠的 条评论
为什么被折叠?



