
1、写我们的头文件和主函数。写好我们的开头。
2、编写定义变量,我们语言定义一个i来用于后面的for循环。
3、输入一个数,在那之前我们要有一个printf()提示一下,显得程序有调理。
4、利用for循环看一看从2到n-1是否能被n整除,如果能就要break。
5、判断素数,如果程序正常结束,就i>=n,说明他就是素数。
6、如果通过break结束,他就会i<n,所以他就不是素数。
用VF的:
判断一个数是否为素数
CLEAR
INPUT '请输入一个大于3的整数:' TO num
判断num是否能够被2~SQRT(num)之间的某一个数整除:如果能够被某数整除,则不是素数,否则为素数
devide = 2
flag = 1 && 标记是否为素数 0--不是素数 1--是素数
循环遍历
DO WHILE devide <= INT(SQRT(num))
IF num % devide = 0 && 判断num能否被devide整除
flag = 0 && 标记不是素数
EXIT
ENDIF
devide = devide + 1 && 构建退出循环的条件
ENDDO
判断并输出结果
IF flag = 1
'是素数'
ELSE
'不是素数'
ENDIF
'程序结束'
RETURN
1000以内素数:
输出1000以内所有的素数:二重循环
CLEAR
num = 3
DO WHILE num <= 1000
判断num是否能够被2~SQRT(num)之间的某一个数整除:如果能够被某数整除,则不是素数,否则为素数
devide = 2
flag = 1 && 标记是否为素数 0--不是素数 1--是素数
循环遍历
DO WHILE devide <= INT(SQRT(num))
IF num % devide = 0 && 判断num能否被devide整除
flag = 0 && 标记不是素数
EXIT
ENDIF
devide = devide + 1 && 构建退出循环的条件
ENDDO
IF flag=1
num
ENDIF
num自增1
num = num + 1
ENDDO
给你个判断素数的函数,自己在主程序搞个循环就可以输出了:
/ 用于判断输入的数是否为素数
// 参数number为需要判断的数
// 当number为素数时返回true,否则返回false
/
bool judgeprime(int number)
{
int i = 0;
if( 2 == number ) return true;
int sq= (int)sqrt((float)number);
for(i = 2; i <= sq; i++)
if(number % i == 0)
return false;
return true;
}
一个素数是指只能被1和自身整除的正整数,例如2,3,5,7等。为了找出1000以内的最大的20个素数,我们可以从999开始递减地检查每个奇数是否是素数,直到找到20个为止。然后我们把这20个素数相加得到和。
下面是一个可能的C语言程序:
#include <stdioh>#include <mathh>// 判断一个正整数是否是素数int is_prime(int n) { // 1不是素数
if (n == 1) return 0; // 2是唯一的偶数素数
if (n == 2) return 1; // 其他偶数不是素数
if (n % 2 == 0) return 0; // 检查从3到sqrt(n)之间的奇数因子
for (int i = 3; i <= sqrt(n); i += 2) { if (n % i == 0) return 0;
} // 没有找到因子,说明是素数
return 1;
}// 计算1000以内的最大的20个素数之和int main() { int sum = 0; // 素数之和
int count = 0; // 素数个数
int n = 999; // 当前检查的奇数
while (count < 20) { // 如果n是素数,就累加到sum,并增加count
if (is_prime(n)) {
sum += n;
count++;
} // 下一个要检查的奇数
n -= 2;
} printf("The sum of the largest 20 prime numbers under 1000 is %d\n", sum);
return 0;
}
可以参考下面的代码:
#include <stdioh>
#include <mathh>
int is_prime(int n)
{
int i;
for(i = 2; i <= sqrt(n); i ++)
if(n%i == 0) return 0;
return 1;
}
int main()
{
int i,n=0;
for(i=2; i < 1000; i ++)
{
if(is_prime(i))
{
printf("%d ",i);
n++;
if(n%5==0)printf("\n");
}
}
}
扩展资料:
C语言参考函数:
double pow(double x,double y) 返回x^y的值
double pow10(int p) 返回10^p的值
double sqrt(double x) 返回+√x的值
C语言isupper()函数:判断一个字符是否是大写字母
C语言isspace()函数:判断一个字符是否是空白符
C语言isprint()函数:判断一个字符是否是可打印字符
参考资料来源:百度百科-C语言函数
以上就是关于C语言 用筛法求1-1000之间的素数全部的内容,包括:C语言 用筛法求1-1000之间的素数、设计一个程序判断一个数是否为素数并求1000以内素数个数、编写程序,求出并输出1000以内的所有素数.用C++语言表示.等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)