第1个回答 2020-04-20
这可以最多输出999999个,输入数字为质数个数
#include<stdio.h>
int main()
{
printf("Enter the number of prime numbers\nThe number must be a integer which is biger than 1 and smaller than 999999\n");
int num, t = 0 ,attempt = 3 , n = 1,remainder;
scanf_s("%d", &num);
int prime[999999];
prime[0] = 3;
printf("2 i=%d\n", n);
printf("%d i=%d\n", prime[0], ++n);
wow:if(n<num)
{
n++;
loop:attempt += 2;
prime[n-2] = attempt;
come:remainder = attempt % prime[t];
if (remainder == 0)
{
t = 0;
goto loop;
}
else
{
if (t >= n-3)
{
t = 0;
printf("%d i=%d\n", prime[n-2], n);
goto wow;
}
else
{
t++;
goto come;
}
}
}
else
{
return 0;
}
}
第2个回答 推荐于2017-10-09
#include <stdio.h>
void main()
{
int a,b;
for(a=2;a<=100;a++) //取100以内所有的数
{
for(b=2;b<a;b++) //穷举法判断是否有因子
if(a%b==0) //有则非质数
break; //跳出本次循环
if(b>=a) //当条件为真则为质数
printf("%5d",a);
}
}本回答被提问者采纳
第3个回答 2009-07-07
#include <math.h>
#include <stdio.h>
#define MIN_NUM 1
#define MAX_NUM 100
int JudgePrime(int n)
{
int i, k = (int)sqrt(n);
if (n < 2)
{
return 0;//比2小
}
for (i=2; i<=k; i++)
{
if (n % i == 0)
{
return 0;//有除自己和1以外的约数
}
}
return 1;
}
int main()
{
int i;
for (i=MIN_NUM; i<=MAX_NUM; i++)
{
if (JudgePrime(i))
{
printf("%d\n", i);
}
}
return 0;
}