1. 程式人生 > >51Nod 1284 2 3 5 7的倍數

51Nod 1284 2 3 5 7的倍數

+= put long 例如 pan bsp pre namespace space

給出一個數N,求1至N中,有多少個數不是2 3 5 7的倍數。 例如N = 10,只有1不是2 3 5 7的倍數。 Input
輸入1個數N(1 <= N <= 10^18)。
Output
輸出不是2 3 5 7的倍數的數共有多少。
Input示例
10
Output示例
1

 1 #include <iostream>
 2 #include <algorithm>
 3 #include <stdio.h>
 4 #include <cstring>
 5 using namespace std;
 6 #define ll long long
 7
int main() 8 { 9 ll n; 10 while(cin>>n){ 11 ll s2,s3,s5,s7,s23,s25,s27,s35,s37,s57,s235,s237,s257,s357,s2357,s=0; 12 s2=n/2,s3=n/3,s5=n/5,s7=n/7; 13 s23=n/(2*3),s25=n/(2*5),s27=n/(2*7),s35=n/(3*5),s37=n/(3*7),s57=n/(5*7); 14 s235=n/(2*3*5),s235=n/(2*3*5),s237=n/(2*3
*7),s257=n/(2*5*7),s357=n/(3*5*7); 15 s2357=n/(2*3*5*7); 16 s+=s2+s3+s5+s7-s23-s25-s27-s35-s37-s57+s235+s237+s257+s357-s2357; 17 cout<<n-s<<endl; 18 } 19 return 0; 20 }

51Nod 1284 2 3 5 7的倍數