判断10到20的素数
#include <stdio.h>
int main()
{
int i=0;
int t=0;
int s=0;
for(i=10;i<=20;i++)
{
for(t=2;t<i;t++)
{
if(i%t==0)
s++;
}
if(s==0);
printf("%d\n",i);
}
}
输出结果为10到20,求解达
修改如下,改动处见注释,供参考:
#include <stdio.h>
int main()
{
int i = 0;
int t = 0;
int s = 0;
for (i = 10; i <= 20; i++)
{
s = 0; // 这行将 s 重新赋值为 0 修改
for (t = 2; t < i; t++)
{
if (i % t == 0)
s++;
}
if (s == 0)// ; 这行最末尾多了';' 分号 修改
printf("%d\n", i);
}
}
第二个for循环之前加个s=0,然后去掉14行的if后面的分号即可。
修改如下:
参考链接:
#include <stdio.h>
int main()
{
int i=0;
int t=0;
int s=0;
for(i=10;i<=20;i++)
{
// 记录当前数字i,可以被2到i-1之间的数整除的个数
// 计算之前初始化为0
s=0;
for(t=2;t<i;t++)
{
if(i%t==0)
s++;
}
// https://zhidao.baidu.com/question/170848286.html
if(s==0) // 去掉此行后面的分号
printf("%d\n",i);
}
}
#include"math.h"
#include"stdio.h"
void main()
{
int n,m,i,flag=0;
printf("\n输人整数n=");
scanf("%d",&n);
m=sqrt(n);
for(i=2;i<=m;i++)
if(n%i==0)
{
flag=1;
break;
}
if(flag)
printf("\n%d不是素数.\n",n);
else
printf("\n%d是素数.\n",n);
}
根据题目要求,我们需要编写一个C++程序来判断在指定范围内的素数。下面是一个可能的解决方案:
#include <iostream>
// 判断一个数是否为素数的函数
bool isPrime(int num) {
if (num == 1 || num == 0) {
return false;
}
for (int i = 2; i <= num / 2; ++i) {
if (num % i == 0) {
return false;
}
}
return true;
}
int main() {
int start = 10; // 起始范围
int end = 20; // 结束范围
std::cout << "素数范围: " << start << " - " << end << std::endl;
// 遍历范围内的每个数并判断是否为素数
for (int i = start; i <= end; ++i) {
if (isPrime(i)) {
std::cout << i << " 是素数" << std::endl;
}
}
return 0;
}
在以上解决方案中,我们首先定义了一个判断一个数是否为素数的函数 isPrime()
。然后在 main()
函数中,我们定义了起始范围 start
和结束范围 end
。接着,我们通过一个循环遍历每个数,并调用 isPrime()
函数来判断该数是否为素数。如果是素数,则输出该数。
要将以上代码保存为一个C++源文件,例如 prime.cpp
,然后使用C++编译器编译和运行该文件。