13

题目描述

给出一个数x,判断它是否为素数,并输出所有它的素因子。

输入描述:

第1行输入组数T,代表有T组数据。

第2-T+1行每行输入一个数x表示对应询问。

数据保证:2≤x≤109

输出描述:

对于每组询问输出两行表示结果。

第1行,如果x是素数,输出“isprime”(不含双引号),否则输出“noprime”(不含双引号)。

第2行,输出x的素因子。

#include<iostream>

using namespace std;

int hanshu(int n)

{

if(n<2)

{return 0;}

for(int i=2;i*i<=n;i++)

{

if(n%i==0)

{return 0;} //返回值为0,代表其不是素数

}

return 1; //否则是素数

}

void hanshu2(int n)

{

for(int i=2;i*i<=n;i++)

{

int f=0;

while(n%i==0)

{

if(f==0)

{

cout<<i<<" ";

f=1;

}

n/=i;

}

}

if(n>1){

cout<<n<<" ";

}

cout<<endl;

}

int main(){

int n;

cin>>n;

for(int j=0;j<n;j++){

int m;

cin>>m;

if(hanshu(m)){

cout<<"isprime"<<endl;

}

else{

cout<<"noprime"<<endl;

}

hanshu2(m);

}

}

全部评论

相关推荐

offerboyyyy:之前看到降温完收到offer了的呢佬,可以签保底等
点赞 评论 收藏
分享
12-13 17:58
门头沟学院 Java
牛客555364186号:你是Java 托吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务