问题遇到的现象和发生背景
输出m到n之间的全部素数
本题要求输出给定整数M和N区间内的全部素数,每行输出10个。素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。
输入格式:
输入在一行中给出两个正整数M和N(1≤M≤N≤500)。
输出格式:
输出素数,每个数占6位,每行输出10个。如果最后一行输出的素数个数不到10个,也需要换行。
若输入的范围不合法,则输出"Invalid."。
用代码块功能插入代码,请勿粘贴截图
#include<stdio.h>
//return 0不是素数
int panduansushu(int x);
int main()
{
int m, n,count=0;
scanf("%d %d", &m, &n);
if (1 <= m && m <= n && n <= 500)
{
for (; m <= n; m++)
{
if (panduansushu(m) == 1)
{
printf("%6d", m);
count++;
if (count % 10 == 0)
printf("\n");
}
}
if (count % 10 != 0);
printf("\n");
}
else
printf("Invalid.");
}
int panduansushu(int x)
{
int i=2;
if (x == 1)
return 0;
if (x == 2)
return 1;
else
{
for (; i <= x / 2 + 1; i++)
{
if (x % i == 0)
return 0;
}
if (i > x / 2 + 1)
return 1;
}
}