编写一个程序,找出1~N中的所有素数,其中1<N,N为整数。
1.要求每个数后面都要输出逗号,请不要输出其他字符
2.遇到异常情况,输出error
输入:5
输出:2,3,5,
输入:a
输出:error
#include <stdio.h>
#include <math.h>
#include <ctype.h>
void prime(int n, int i, int k);
int main() {
int N;
scanf_s("%d", &N);
int j;
int i = 2;
int k;
if (N < 2) printf("error");
else {
for (j = 2; j <= N; j++) {
k = (int)sqrt((double)j);
prime(j, i, k);
}
}
return 0;
}
void prime(int j, int i, int k) {
if (j == 2) printf("%d,", 2);
else if (j == 3) printf("%d,", 3);
else {
for (i = 2; i <= k; i++)
if (j % i == 0)
break;
if (i > k)
printf("%d,", j);
}
return;
}
emmm...不知道为什么,这个拿不了满分。VS2019上面运行确实没问题,而码图上面却在输入a的时候报错。
#include<stdio.h>
#include<math.h>
int main()
{
int N,r,i,j;
int isprim[1000] = { 0 };
r = scanf_s("%d", &N);
if (r == 1&&N>1)
{
for (i = 2; i <= sqrt((double)N); i++)
{
if (isprim[i] == 0)
{
for (j = 2 * i; j <= N; j+=i)
{
isprim[j] = 1;
}
}
}
}
else
{
printf("error");
}
for (i = 2; i <= N; i++)
{
if (isprim[i] == 0)
printf("%d,", i);
}
return 0;
}
原文:https://www.cnblogs.com/Akizuki-Kanna/p/14787393.html