昨日と今日の
パソコンの動作がおもいからブログ書く。←なぞの理由
素数問題ばっか解いたw
あと一問で60問だけど気にしない
3518
素数
#include <cstdio> #include <algorithm> using namespace std; int main() { int prime[100000]; int pnum = 0; bool isprime[1299710]; fill(isprime, isprime+1299710, true); isprime[0]=isprime[1]=false; for (int i=2; i<1299710; i++) { if (isprime[i]) { prime[pnum++] = i; for (int j=i+i; j<1299710; j+=i) isprime[j]=false; } } int num; while (scanf("%d", &num)) { if (num == 0) break; if (isprime[num]||num<2) { printf("0\n"); continue; } int res; for (int i=0; i<100000; i++) { if (prime[i] < num ) { res = prime[i+1] - prime[i]; } } printf("%d\n", res); } }
2739
素数
#include <cstdio> #include <algorithm> using namespace std; int main() { int prime[10000]; int pnum = 0; bool isprime[10001]; fill(isprime, isprime+10001, true); isprime[0]=isprime[1]=false; for (int i=2; i<10001; i++) { if (isprime[i]) { prime[pnum++] = i; for (int j=i+i; j<10001; j+=i) isprime[j]=false; } } int num; while (scanf("%d", &num)) { if (num == 0) break; int res = 0; for (int i=0; prime[i]<=num; i++) { int sum = prime[i]; for (int j=i+1; j<10000; j++) { if (sum == num) { res++; break; } if (sum > num) break; sum += prime[j]; } } printf("%d\n", res); } }
3006
素数
問題文が日本語
#include <cstdio> #include <algorithm> using namespace std; int main() { int a, d, n; bool isprime[1000001]; fill(isprime, isprime+1000001, true); isprime[0]=isprime[1]=false; for (int i=2; i<1000001; i++) { if (isprime[i]) { for (int j=i+i; j<1000001; j+=i) isprime[j]=false; } } while (scanf("%d%d%d", &a, &d, &n)) { if (a == 0 && d == 0 && n == 0) break; int cnt=0; int i; for (i=a; cnt!=n; i+=d) if (isprime[i]) cnt++; printf("%d\n", i-d); } }
1504
てむや
#include <iostream> #include <algorithm> #include <sstream> using namespace std; #define ALL(c) (c).begin(), (c).end() int toInt(string s) { stringstream ss; ss.str(s); int res; ss >> res; return res; } string toString(int i) { stringstream ss; ss << i; return ss.str(); } int main() { int N; cin >> N; string num1, num2, res; int n1, n2, sum; for (int ix=0; ix<N; ix++) { cin >> num1 >> num2; reverse(ALL(num1)); reverse(ALL(num2)); n1 = toInt(num1); n2 = toInt(num2); sum = n1 + n2; res = toString(sum); reverse(ALL(res)); cout << toInt(res) << endl; } }
1552
ていや
#include <cstdio> #include <vector> #include <algorithm> using namespace std; int main() { int in; while (scanf("%d",&in)) { if (in == -1) break; vector<int> num; num.push_back(in); while (scanf("%d",&in)) { if (in == 0) break; num.push_back(in); } sort(num.begin(), num.end()); int cnt = 0; for (int i=0; i<num.size()-1; i++) { int temp = num[i]; for (int j=i+1; j<num.size(); j++) { if (temp*2 == num[j]) { cnt++; break; } } } printf("%d\n",cnt); } }
ていや
簡単な問題いいよ←