题目描述
点击直达题目链接
解题思路
就是求素数 先动态开辟一个区域,开辟为n个整型的大小的空间。 注意: 用count 记录是第几个素数。 打印的时候注意每一行的结尾不能有空格。 因为我是从0 处开始存储素数的,打印的时候,m,n 都有减一哦! 具体实现看代码:
代码
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main()
{
int m, n,i,count=1,x;
scanf("%d%d", &m, &n);
int* a = (int*)malloc(n * sizeof(int));
if (a == NULL)
{
return 0;
}
a[0] = 2;
for (i = 3;count<=n; i++)
{
for (x = 2; x <= (int)sqrt(i); x++)
{
if (i % x == 0)
{
break;
}
}
if (x > (int)sqrt(i))
{
a[count++] = i;
}
}
x = 0;
for (i = m-1; i < n; i++)
{
printf("%d", a[i]);
x++;
if (x != 10&&i!=n-1)
{
printf(" ");
}
else if (x == 10)
{
x = 0;
printf("\n");
}
}
free(a);
a = NULL;
return 0;
}
|