第1个回答 2014-01-25
补充一下,求
素数的方法还是有很多的,比如:
<1>遍历2以上N的
平方根以下的每一个整数,是不是能整除N;(这是最基本的方法)
<2>遍历2以上N的平方根以下的每一个素数,是不是能整除N;(这个方法是上面方法的改进,但要求N平方根以下的素数已全部知道)
<3>采用Rabin-Miller算法进行验算;
本回答被网友采纳
第2个回答 2014-01-25
#include <stdio.h>
#include <math.h>
void main()
{
int IsPrime(int);
int n;
printf("\n\n请输入一个数:");
scanf("%d",&n);
if(IsPrime(n))
printf("\n %d 是素数\n",n);
else
printf("\n %d 不是素数.\n",n);
}
int IsPrime(int Num)/*是素数返回1,否则返回0*/
{
int i, MaxDivisor = (int)sqrt(Num);
if (Num <= 2) return 0;
for (i=2; i<=MaxDivisor; i++) {
if (Num%i == 0) return 0; /*Num能被i除,说明不是素数,返回0*/
}
return 1;
}
第3个回答 2017-07-07
int Main()
{
int x,y,y1,z;
printf("please input for x\n");
scanf("%d",&x);
z=x;
for(y=2;y<z;y++)
{
z=x/y;
if(x == y*z)
printf("%d不是素数",x);
return 0;
}
printf("%d是素数",x);
return 0;
}
第4个回答 2014-01-25
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
bool prime; int i,n,k;
cin >> n;
k=int(sqrt(double(n)));
for (i=2;i<=k;i++)
{
prime=true;
if (n%i==0)
{
prime=false;
break;
}
else
{
prime=true;
}
}
if (prime)
{
cout << "yes";
} else
{
cout << "no";
}
return 0;}