素数与因子
时间: 1ms 内存:128M
描述:
从键盘输入任意整数n,若n不是素数,则计算出n的所有因子(不包括1),例如对于16,输出2,4,8;否则输出“It is a prime number.”判断素数和求因子分别用函数完成。
输入:
任意整数n
输出:
该数的因子或素数标志。
示例输入:
16
示例输出:
2
4
8
提示:
参考答案(内存最优[760]):
#include<stdio.h>
#include<math.h>
gene(int n)
{
int d;
for(d=2;d<n;d++)
if(n%d==0)
printf("%d\n",d);
return d;
}
prime(int n)
{
int m,i;
double k;
k=sqrt(n);
for(i=2;i<=k;i++)
if(n%i==0)break;
if(i>=k)
printf("It is a prime number.\n");
else
m=gene(n);
}
int main()
{
int n,s;
scanf("%d",&n);
s=prime(n);
return 0;
}
参考答案(时间最优[0]):
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int prime (int m);
int m,p;
cin>>m;
p= prime (m);
for(int q=2;q<m;q++){
if(m%q==0&&q!=m/q){
cout<<q<<endl;
}
else if(m%q==0&&q==m/q)cout<<q<<endl;
}
return 0;
}
int prime (int m)
{
int i=2,k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0){
break;
}else cout<<"It is a prime number."<<endl;
return m ;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。
