在敲代码时,遇到的这道题。后来搜索了下。
找到了一些简单的方法:(质数又称素数,一个大于1的自然数,除了1和它本身外,不能被其他自然数整除。)
这个是多组输入,单个判断是否为素数,想要结束时按Ctrl+Z。
#include
#include
int main()
{
int n=0;
while (~scanf("%d", &n))
{
int i = 0;
int k = sqrt(float(n));
for (i = 2; i <= k; i++)
if (n%i == 0)
break;
if (i <= k)
printf("%d 不是素数\n", n);
else
printf("%d 是素数\n", n);
}
return 0;
}
输出100以内的所有素数。(第一种方法)
#include
int main()
{
int i = 0;
int count = 0;
for (i = 2; i <= 100; i++)
{
int j = 0;
for (j = 2; j
{
if (i%j == 0)
break;
}
if (i == j)
printf("%d是素数\n", i);
else
printf("%d不是素数\n", i);
count++;
}
printf("%d\n", count);
return 0;
}
输出100以内的所有素数。(第二种方法)
#include
int main()
{
int i = 0;
int count = 0;
printf("2是素数\n");
for (i = 3; i <= 100; i += 2)
{
int j = 0;
for (j = 2; j
{
if (i%j == 0)
break;
}
if (i == j)
printf("%d是素数\n", i);
else
printf("%d不是素数\n", i);
count++;
}
printf("%d\n", count);
return 0;
}
输出100以内的所有素数。(第三种方法)
#include
#include
int main()
{
int i = 0;
int count = 0;
for (i = 2; i <= 100; i++)
{
int j = 0;
for (j = 2; j <=sqrt(float(i)); j++)
{
if (i%j == 0)
break;
}
if (j<=sqrt(float(i)))
printf("%d不是素数\n", i);
else
printf("%d是素数\n", i);
count++;
}
printf("%d\n", count);
return 0;
}
输出100以内的所有素数。(第四种方法)
#include
#include
int main()
{
int i = 0;
int count = 0;
printf("2是素数\n");
for (i = 3; i <= 100; i += 2)
{
int j = 0;
for (j = 2; j <= sqrt(float(i)); j++)
{
if (i%j == 0)
break;
}
if (j <= sqrt(float(i)))
printf("%d不是素数\n", i);
else
printf("%d是素数\n", i);
count++;
}
printf("%d\n", count);
return 0;
}
以上就是我觉得比较简单的一些方法。
素数的求解方法很多,感兴趣的可以去研究下!