我正在尝试打印系列的第n个数字
2,23,235,2357,235711,23571113 ...
但是在n = 3之后我没有得到正确的输出。
在n = 3时给出234错误
#include<stdio.h>
#include<math.h>
main()
{
unsigned int t, n, p, i, j, d;
int s;
scanf("%d", &t);
if (t <= 10)
{
while (t != 0)
{
scanf("%d", &n);
p = n;
j = 2;
s = 0;
while (p > 0)
{
d = prime(j);
// printf("%d",d);
if (d == 1)
{
s = s + j * pow(10, p - 1);
p--;
j++;
}
else
j++;
}
printf("%d", s);
t--;
}
}
}
int prime(int num)
{
int i, flag = 1, n;
// n=sqrt(num);
for (i = 2; (i <= num / 2) && (flag == 1); i++)
{
if (num % i == 0)
flag = 0;
}
if (flag == 0)
return 0;
else
return 1;
}
我试图在每次迭代后生成素数。
最佳答案
因此,您正在生成素数,并希望输出串联素数的字符串。
编写一个函数,用前n个素数填充数组。这很容易。
然后编写一个输出函数,如:
for (i = 0; i < n; ++i) {
for (j = 0; j <= i; ++j) {
printf("%d", arr[j]);
}
printf("\n"); /* or any other separator */
}
除非您达到十亿数量级的素数,否则再也没有大数目的麻烦了。
关于c++ - 如何打印系列的第n个数字?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21237320/