循环判断一个数字是否为素数
#include<stdio.h>
//循环判断素数
int main()
{
int number = 0;
int isPrime = 1;
scanf("%d",&number);
if (number==1)
isPrime = 0;
else
{
for (int i = 2; i<number;i++)
{
if(number % i == 0)
{ isPrime = 0;
break;
}
}
}
if(isPrime==1)
printf("Yes");
else
printf("No");
return 0;
}
number为你要判断的数字,如果number 为 1 则不是素数, number不为1 则进行循环判断
循环三要素:
循环变量的初始值 int i = 2
循环条件 i < number
循环变量增量 i ++
其中break 用于减少不必要的循环次数
输出n以内的素数
#include<stdio.h>
/*
输出前n以内的素数
*/
int isPrime(int number);
int main()
{
int num;
scanf("%d",&num);
for (int i =2;i<num;i++){
if(isPrime(i)==1){
printf("%d ",i);
}
}
return 0;
}
int isPrime(int number)
{
//int number;
int isPrime = 1;
//scanf("%d",&number);
if (number == 1){
isPrime == 0;
}
for (int i=2;i<number;i++){
if (number % i==0){
isPrime = 0;
break;
}
}
if(isPrime==1){
//printf("Yes");
return 1;
}
else{
//printf("No");
return 0;
}
}
获得第n个素数
#include<stdio.h>
/*
获得第n个素数
*/
int isPrime(int number);
int NisPrime(int end);
int main()
{
int number;
scanf("%d",&number);
NisPrime(number);
return 0;
}
int NisPrime(int end)
{
int cnt = 0;
int number = 2;
int primeNumber = 2;
while(cnt < end){
if(isPrime(number)){
cnt ++;
primeNumber = number;
}
number ++;
}
printf("%d",primeNumber);
return primeNumber;
}
int isPrime(int number)
{
//int number;
int isPrime = 1;
//scanf("%d",&number);
if (number == 1){
isPrime == 0;
}
for (int i=2;i<number;i++){
if (number % i==0){
isPrime = 0;
break;
}
}
if(isPrime==1){
//printf("Yes");
return 1;
}
else{
//printf("No");
return 0;
}
}
获得前n个素数的和(包括第个n素数)
#include<stdio.h>
/*
获得第n个素数的合
*/
int isPrime(int number);
int NisPrime(int end);
int sumPrime(int end);
int main()
{
int number;
scanf("%d",&number);
printf("%d",sumPrime(number));
return 0;
}
int sumPrime(int end)
{
/*
计算前n个素数和
*/
int sum = 0;
int count = 0;
int number = 2;
while(count<end){
if(isPrime(number)){
sum += number;
count ++;
}
number ++;
}
return sum;
}
int NisPrime(int end)
{
/*
输出第n个素数
*/
int cnt = 0;
int number = 2;
int primeNumber = 2;
while(cnt < end){
if(isPrime(number)){
cnt ++;
primeNumber = number;
}
number ++;
}
printf("%d",primeNumber);
return primeNumber;
}
int isPrime(int number)
{
/*
判断一个数字是否为素数;
*/
//int number;
int isPrime = 1;
//scanf("%d",&number);
if (number == 1){
isPrime == 0;
}
for (int i=2;i<number;i++){
if (number % i==0){
isPrime = 0;
break;
}
}
if(isPrime==1){
//printf("Yes");
return 1;
}
else{
//printf("No");
return 0;
}
}
获得第m个到第n个素数的和(包括m和n)
#include<stdio.h>
//输出前n个素数 2 3 5 7 11
int main()
{
int count = 0;
int number = 2;
int end1,end2;
int sum = 0, sum2 = 0;
//for(int number=2; number<start;number++)
scanf("%d %d",&end1, &end2);
while(count<end1-1){
int isPrime = 1;
for(int i=2; i<number ;i++)
{
if(number%i==0){
isPrime = 0;
break;
}
}
if(isPrime == 1){
//printf("%d ", number);
count ++;
sum += number;
}
number++;
}
int count2 = 0;
int number2 = 2;
while(count2 < end2){
int isPrime = 1;
for(int i=2;i<number2;i++){
for(int j=2;j<number2;j++){
if(number2 % j ==0 ){
isPrime = 0;
break;
}
}
}
if(isPrime == 1){
//printf("%d ", number);
count2 ++;
sum2 += number2;
}
number2 ++;
}
printf("%d",sum2-sum);
return 0;
}
整数分解123456 逆序输出
#include<stdio.h>
//整数分解
int main()
{
int number;
int remainder = 0;
scanf("%d",&number);
while(number>0){
remainder = number %
10;
number /= 10;
printf("%d ",remainder);
}
return 0;
}
将数字逆序输出
这种逆序只适用末尾没有0的数字 700 则反转为7 而不是007
/*这种逆序只适用末尾没有0的数字 700 则反转为7 而不是007
123
d = 3 t=0+3 x=12
d = 2 t=3*10+2 x=1
d = 1 t= 32*10+1 x=0
*/
int reverse(int number)
{
int remainder,reverseNumber = 0;
while(number>0){
remainder = number % 10;
reverseNumber = reverseNumber * 10 + remainder;
number /= 10;
}
return reverseNumber;
}