69,371
社区成员
发帖
与我相关
我的任务
分享
bool isPrime(int number) {
int i;
int k;
if (number < 2) return false;
if (number==2) return true;
if (number % 2 == 0) return false; //>2的偶数不是素数
k = (int)sqrt((double)number); // 用平方根,而非用number/2,相对提高速度sqrt(number)/2倍
for(i = 3; i <= k; i+=2) //只需要用奇数去除,偶数已排除
{
if(number%i==0)
break;
}
if (i > k) return true; // 没有找到可以整除的除数,被除数是 prime number
else return false;
}
#include <stdio.h>
#include <math.h>
int main(void)
{
int num;
int index;
int prime = 1;
for(num = 2; num <= 100; num++)
{
/*
** 检测是否还能被其他数整除
*/
for(index = 2; index <= sqrt(num); index++)
{
if(num % index == 0)
{
prime = 0; // 质数的标记,为0则不是质数
break;
}
}
if(num % num == 0 && num % 1 == 0 && prime)
printf("%d ", num);
prime = 1; // 还原标记
}
putchar('\n');
return 0;
}
bool isPrime(int number) {
int i;
int k;
k = (int)sqrt((double)number); // 用平方根,而非用number/2,相对提高速度sqrt(number)/2倍
for(i = 2; i <= k; i++)
{
if(number%i==0)
break;
}
if (i > k) return true; // 没有找到可以整除的除数,被除数是 prime number
else return false;
}
int isprime(int n)
{
int i;
if (n < 2)
return 0;
if (n == 2)
return 1;
if (n % 2 == 0) //偶数不是素数
return 0;
for(i = 3; i * i <= n; i+=2) // 偶数已过滤
{
if ( (n % i) == 0)
{
return 0;
}
}
return 1;
}
int main()
{
#define N 100
int j = 0;
for (j=2; j <= N; j++)
{
if (isprime(j))
printf("%d ", j);
}
return 0;
}
#include <stdio.h>
void fun()
{
int i,j;
int flag;
for(i = 2; i < 100; i++)
{
flag = 1;
for (j = 2; j <= (i/2); j++)
{
if ( (i % j) == 0)
{
flag = 0;
break;
}
}
if (flag)
{
printf("%d ", i);
}
}
}
void main()
{
fun();
}