1.判断一个数是不是素数,效率还行的一段小代码
#include <stdio.h>
#include <math.h>
int IsPrime(int x)
{
if (x == 1)return 0;
else if (x == 2)return 1;
else if (x % 2 == 0) return 0;
else
{
int i,bound = sqrt((double)x) + 1;
for( i = 3; i < bound; i += 2)
{
if (x % i == 0)
return 0;
}
return 1;
}
}
int main()
{
int n;
printf("Please input a positive integer:");
while (scanf( "%d",&n) && n) {
if (n < 0) printf("Please input a positive integer:");
else
{
if(IsPrime(n))
printf("Yes\n");
else
printf("No\n");
printf("Please input a positive integer:");
}
}
return 0;
}
2.如果你想计算[0,n]中所有素数的和,那可以一边寻找,一遍构造素数数组,这个数组对后面整数的素数判断有好处,这样检查起来速度会更快。当然你可以先构造好数组,再计算,但是个人觉得,两者差不多。
#include <stdio.h>
#include <math.h>
int Ps[100];
int index = 2;
int IsPrime(int x)
{
if (x == 1)return 0;
else if (x == 2)return 1;
else if (x % 2 == 0) return 0;
else
{
int i,bound = sqrt((double)x) + 1;
for( i = 1; Ps[i] < bound; i ++)
{
if (x % Ps[i] == 0)
return 0;
}
Ps[index++] = x;
return 1;
}
}
int SumPrime(int n)
{
int i, sum = 0;
for(i = 2; i <= n; i++)
if(IsPrime(i))
sum += i;
return sum;
}
int main()
{
int n;
Ps[0] = 2;Ps[1] = 3;
printf("Please input a positive integer:");
while (scanf( "%d",&n) && n) {
if (n < 0) printf("Please input a positive integer:");
else
{
printf("The Sum of primers between 0 and %d is: %d\n",n,SumPrime(n));
printf("Please input a positive integer:");
}
}
return 0;
}
分享到:
相关推荐
任意输入一个偶数n(n>4),请将它分解为两个素数之和。
正偶数分解两个素数之和
在这个问题中,素数的定义为“一个素数是指一个正整数,且该正整数有且只有两个不同的因子”。例如37是一个素数,因为它只有两个不同的因子37和1。 输入 每行输入一个整数N(N),这个数就是你需要把它表示成四个...
编写一个程序,从键盘输入一个偶数,输出该偶数写成的两个素数之和
求任意两个正整数之间的素数,C语言代码程序简洁,好懂比书上的简单。
给你两个数a、b,现在的问题是要判断这两个数组成的区间内共有多少个素数 Input 多组测试数据。 每个测试数据输入两个数a、b。(2,b) Output 输出该区间内素数的个数。 Sample Input 2 4 4 6 Sample Output 2 1
用Java编写一个程序,输出两个整数之间的所有素数。
表偶数(≥6)为两个奇素数之和,许作铭,罗贵文,本文通过利用一种新的筛法与台阶理论,得到了任意偶数(≥6)表为“两个奇素数之和”表法个数的显示公式或称Goldbach定理。应用本定
任意相邻两个素数之间的最大距离公式,许作铭,罗贵文,本文通过利用素数分布理论,给出了估计任意相邻两个素数之间的最大距离公式,比waniec和Pintz在Riemann假设成立条件下得到的计算公式有
用户输入任意两个数,程序返回两数间的所有质数。 帮助C语言初学者了解C语言小程序
求任意两个数之间的所有素数,用C语言编程,并包含动态存储,指针等知识点。
这个问题和值得研究,这个程序我弄了很久,希望能够给朋友们 学习的机会
设计一个Java程序,其功能为:从键盘输入两个正整数m,n(m),显示这两个数值之间的全部质数。例如,输入20和200,程序会将20~200之间的全部质数显示出来。
从键盘任意输入两个整数,输出两数之间的素数,素数判断用函数实现。 扩展要求:1)程序可以循环执行,判断完一组可以再进行下一组;可以设定一个特殊键退出 2) 当输入的两个数不是大于2,则重新输入 3)输入的数...
验证哥德巴赫猜想:一个大偶数可以分解为两个素数之和。分解500~1000之间的大偶数。
采用数组的数据结构,存储两个大素数,同时包括加减乘除的函数。采用Fermat素性检测的方法来检测生成的大素数
用C语言编写一个求两个整数之间的绝对素数,并求他们的和
验证哥德巴赫猜想,任意一个大于等于6的偶数都可以分解为两个素数之和,VB6.0源代码编写
利用for循环验证哥德巴赫猜想 如果任意一个大于6的偶数都可以写成i昂个素数的和
本项目是一个数学工具项目源码,可以很方便的显示出固定范围的素数和质数之和或者质数的数量。是一个专业性比较强的项目。一般人用不到。提供测试。