#include<stdio.h>
#include<string.h>
int st(int n)
{
int t=2;
while (n>1)
{
if (n%t==0)
{
if (t!=2 && t!=3 && t!=5 && t!=7)
return 0;
n /= t;
}
else
t++;
}
return 1;
}
int main()
{
int n,i=2;
FILE* fp;
if ((fp = fopen("data.txt", "w")) == NULL)
{
printf("cannot open file\n");
return -1;
}
scanf("%d", &n);
while (n>0)
{
if (st(i))
{
printf("%d ", i);
fprintf(fp,"%d ", i);
n--;
}
i++;
}
fclose(fp);
return 0;
}
供参考:
#include<stdio.h>
#define min(a,b) (a)>(b)?(b):(a)
void HNumber(int n)
{
FILE* fp;
int* m = new int[n + 1];
m[0] = 1;
int i, a = 0, b = 0, c = 0, d = 0;
for (i = 1; i <= n; i++) {
m[i] = min(min(min(m[a] * 2, m[b] * 3), m[c] * 5), m[d] * 7);
if (m[i] == m[a] * 2)
a++;
if (m[i] == m[b] * 3)
b++;
if (m[i] == m[c] * 5)
c++;
if (m[i] == m[d] * 7)
d++;
}
for (i = 1; i <= n; i++)//输出一行 10 个
printf(i % 10 == 0 ? "%5d\n" : "%5d", m[i]);
if ((i - 1) % 10 != 0)
printf("\n");
fp = fopen("Hnumber.txt", "w");//保存到文件
if (fp == NULL) {
printf("Save to file fail!\n");
}
else {
for (i = 1; i <= n; i++)
fprintf(fp, "%5d", m[i]);
fclose(fp);
}
delete[]m;
}
int main()
{
int n;
while (scanf("%d", &n) == 1 && n >= 1 && n <= 300)
//多组输入,输入n 大于300 或 小于1 时退出运行。
HNumber(n);
return 0;
}
写入文件
FILE *fp;
fprintf(fp,"%d ",num);
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!